/// <summary> /// Initializes a new instance of the <see cref="Temperature" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Temperature(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(ITemperatureBehavior), out var dist)) { _workload = new Workload(dist, parameters.Entities.Count); } }
/// <summary> /// Initializes a new instance of the <see cref="Time" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Time(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(ITimeBehavior), out var dist) && dist != null) { _initWorkload = new Workload(dist, parameters.Entities.Count); } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _updateBehaviors = context.GetBehaviors <IFrequencyUpdateBehavior>(); if (_updateWorkload != null) { foreach (var behavior in _updateBehaviors) { _updateWorkload.Actions.Add(behavior.Update); } } }
/// <summary> /// Initializes a new instance of the <see cref="Accept" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Accept(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(IAcceptBehavior), out var dist)) { _probeWorkload = new Workload(dist, parameters.Entities.Count); _acceptWorkload = new Workload(dist, parameters.Entities.Count); } }
/// <inheritdoc /> public void FetchBehaviors(ParallelBindingContext context) { _timeBehaviors = context.GetBehaviors <ITimeBehavior>(); if (_initWorkload != null) { foreach (var behavior in _timeBehaviors) { _initWorkload.Actions.Add(behavior.InitializeStates); } } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _behaviors = context.GetBehaviors <ITemperatureBehavior>(); if (_workload != null) { foreach (var behavior in _behaviors) { _workload.Actions.Add(behavior.Temperature); } } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _biasingBehaviors = context.GetBehaviors <IBiasingBehavior>(); if (_loadWorkload != null) { foreach (var behavior in _biasingBehaviors) { _loadWorkload.Actions.Add(behavior.Load); } } }
/// <inheritdoc /> public override void FetchBehaviors(ParallelBindingContext context) { base.FetchBehaviors(context); _convergenceBehaviors = context.GetBehaviors <IConvergenceBehavior>(); if (_convergenceWorkload != null) { foreach (var behavior in _convergenceBehaviors) { _convergenceWorkload.Functions.Add(behavior.IsConvergent); } } }
/// <summary> /// Initializes a new instance of the <see cref="Noise" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Noise(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(INoiseBehavior), out var dist) && dist != null) { _noiseInitializeWorkload = new Workload(dist, parameters.Entities.Count); _noiseComputeWorkload = new Workload(dist, parameters.Entities.Count); if (context.TryGetState(out INoiseSimulationState parent)) { context.AddLocalState <INoiseSimulationState>(new NoiseSimulationState(parent)); } } }
/// <summary> /// Initializes a new instance of the <see cref="Frequency" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Frequency(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(IFrequencyBehavior), out var dist) && dist != null) { _initWorkload = new Workload(dist, parameters.Entities.Count); _loadWorkload = new Workload(dist, parameters.Entities.Count); if (context.TryGetState(out IComplexSimulationState parent)) { context.AddLocalState <IComplexSimulationState>(_state = new ComplexSimulationState(parent)); } } }
/// <summary> /// Initializes a new instance of the <see cref="Convergence" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Convergence(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(IConvergenceBehavior), out var dist) && dist != null) { _convergenceWorkload = new Workload <bool>((IWorkDistributor <bool>)dist, parameters.Entities.Count); if (context.TryGetState <IIterationSimulationState>(out var parent)) { if (!(parent is IterationSimulationState)) { context.AddLocalState <IIterationSimulationState>(new IterationSimulationState(parent)); } } } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _noiseBehaviors = context.GetBehaviors <INoiseBehavior>(); if (_noiseInitializeWorkload != null) { foreach (var behavior in _noiseBehaviors) { _noiseInitializeWorkload.Actions.Add(behavior.Initialize); } } if (_noiseComputeWorkload != null) { foreach (var behavior in _noiseBehaviors) { _noiseComputeWorkload.Actions.Add(behavior.Compute); } } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _acceptBehaviors = context.GetBehaviors <IAcceptBehavior>(); if (_acceptWorkload != null) { foreach (var behavior in _acceptBehaviors) { _acceptWorkload.Actions.Add(behavior.Accept); } } if (_probeWorkload != null) { foreach (var behavior in _acceptBehaviors) { _probeWorkload.Actions.Add(behavior.Probe); } } }
/// <inheritdoc/> public virtual void FetchBehaviors(ParallelBindingContext context) { _frequencyBehaviors = context.GetBehaviors <IFrequencyBehavior>(); if (_initWorkload != null) { foreach (var behavior in _frequencyBehaviors) { _initWorkload.Actions.Add(behavior.InitializeParameters); } } if (_loadWorkload != null) { foreach (var behavior in _frequencyBehaviors) { _loadWorkload.Actions.Add(behavior.Load); } } }
/// <summary> /// Initializes a new instance of the <see cref="Biasing" /> class. /// </summary> /// <param name="context">The context.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="context"/> is <c>null</c>.</exception> public Biasing(ParallelBindingContext context) : base(context) { var parameters = context.GetParameterSet <Parameters>(); if (parameters.WorkDistributors.TryGetValue(typeof(IBiasingBehavior), out var dist) && dist != null) { _loadWorkload = new Workload(dist, parameters.Entities.Count); if (context.TryGetState(out IBiasingSimulationState bparent)) { context.AddLocalState <IBiasingSimulationState>(_state = new BiasingSimulationState(bparent)); } if (context.TryGetState(out IIterationSimulationState cparent)) { context.AddLocalState <IIterationSimulationState>(new IterationSimulationState(cparent)); } } }