//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="timeScale">The membrane time scale (ms).</param> /// <param name="resistance">The membrane resistance (Mohm).</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="rheobaseV">The membrane rheobase threshold (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="sharpnessDeltaT">The sharpness of membrane potential change (mV).</param> /// <param name="refractoryPeriods">The number of after-spike computation cycles while an input stimuli to be ignored (cycles).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingExpIFSettings(URandomValueSettings timeScale = null, URandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings rheobaseV = null, RandomValueSettings firingThresholdV = null, URandomValueSettings sharpnessDeltaT = null, int refractoryPeriods = ActivationFactory.DefaultRefractoryPeriods, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { TimeScale = URandomValueSettings.CloneOrCreate(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrCreate(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrCreate(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrCreate(sharpnessDeltaT, TypicalSharpnessDeltaT); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="recoveryTimeScale">The time scale of the recovery variable.</param> /// <param name="recoverySensitivity">The sensitivity of the recovery variable to the sub-threshold fluctuations of the membrane potential.</param> /// <param name="recoveryReset">The after-spike reset of the recovery variable.</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="refractoryPeriods">The number of after-spike computation cycles while an input stimuli to be ignored (cycles).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingIzhikevichIFSettings(URandomValueSettings recoveryTimeScale = null, URandomValueSettings recoverySensitivity = null, URandomValueSettings recoveryReset = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings firingThresholdV = null, int refractoryPeriods = ActivationFactory.DefaultRefractoryPeriods, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { RecoveryTimeScale = URandomValueSettings.CloneOrCreate(recoveryTimeScale, TypicalRecoveryTimeScale); RecoverySensitivity = URandomValueSettings.CloneOrCreate(recoverySensitivity, TypicalRecoverySensitivity); RecoveryReset = URandomValueSettings.CloneOrCreate(recoveryReset, TypicalRecoveryReset); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); RefractoryPeriods = refractoryPeriods; SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <remarks> /// The arguments are in RandomValue form to allow their dynamic random initialization within the specified ranges. /// </remarks> /// <param name="timeScale">The membrane time scale (ms).</param> /// <param name="resistance">The membrane resistance (Mohm).</param> /// <param name="restV">The membrane rest potential (mV).</param> /// <param name="resetV">The membrane reset potential (mV).</param> /// <param name="rheobaseV">The membrane rheobase threshold (mV).</param> /// <param name="firingThresholdV">The membrane firing threshold (mV).</param> /// <param name="sharpnessDeltaT">The sharpness of membrane potential change (mV).</param> /// <param name="adaptationVoltageCoupling">The adaptation voltage coupling (nS).</param> /// <param name="adaptationTimeConstant">The adaptation time constant (ms).</param> /// <param name="adaptationSpikeTriggeredIncrement">The spike triggered adaptation increment (pA).</param> /// <param name="solverMethod">The ODE numerical solver method to be used.</param> /// <param name="solverCompSteps">The number of computation sub-steps of the ODE numerical solver.</param> /// <param name="stimuliDuration">The duration of the membrane stimulation (ms).</param> public AFSpikingAdExpIFSettings(URandomValueSettings timeScale = null, URandomValueSettings resistance = null, RandomValueSettings restV = null, RandomValueSettings resetV = null, RandomValueSettings rheobaseV = null, RandomValueSettings firingThresholdV = null, URandomValueSettings sharpnessDeltaT = null, URandomValueSettings adaptationVoltageCoupling = null, URandomValueSettings adaptationTimeConstant = null, URandomValueSettings adaptationSpikeTriggeredIncrement = null, ODENumSolver.Method solverMethod = ActivationFactory.DefaultSolverMethod, int solverCompSteps = ActivationFactory.DefaultSolverCompSteps, double stimuliDuration = ActivationFactory.DefaultStimuliDuration ) { TimeScale = URandomValueSettings.CloneOrCreate(timeScale, TypicalTimeScale); Resistance = URandomValueSettings.CloneOrCreate(resistance, TypicalResistance); RestV = RandomValueSettings.CloneOrCreate(restV, TypicalRestV); ResetV = RandomValueSettings.CloneOrCreate(resetV, TypicalResetV); RheobaseV = RandomValueSettings.CloneOrCreate(rheobaseV, TypicalRheobaseV); FiringThresholdV = RandomValueSettings.CloneOrCreate(firingThresholdV, TypicalFiringThresholdV); SharpnessDeltaT = URandomValueSettings.CloneOrCreate(sharpnessDeltaT, TypicalSharpnessDeltaT); AdaptationVoltageCoupling = URandomValueSettings.CloneOrCreate(adaptationVoltageCoupling, TypicalAdaptationVoltageCoupling); AdaptationTimeConstant = URandomValueSettings.CloneOrCreate(adaptationTimeConstant, TypicalAdaptationTimeConstant); AdaptationSpikeTriggeredIncrement = URandomValueSettings.CloneOrCreate(adaptationSpikeTriggeredIncrement, TypicalAdaptationSpikeTriggeredIncrement); SolverMethod = solverMethod; SolverCompSteps = solverCompSteps; StimuliDuration = stimuliDuration; Check(); return; }