public void Solve( IGumel2006_Context Gumel2006_Context) { IEpidemicOutbreak_Model epidemicOutbreak_Model = new C19M.M.C.A.Gumel2006.Classes.Models.EpidemicOutbreak_Model( Gumel2006_Context); MathNet.Numerics.LinearAlgebra.Vector <double>[] RungeKuttaResults = MathNet.Numerics.OdeSolvers.RungeKutta.FourthOrder( MathNet.Numerics.LinearAlgebra.Vector <double> .Build.Dense(new[] { (double)epidemicOutbreak_Model.E.InitialValue.Value.Value, (double)epidemicOutbreak_Model.I.InitialValue.Value.Value, (double)epidemicOutbreak_Model.R.InitialValue.Value.Value, (double)epidemicOutbreak_Model.S.InitialValue.Value.Value, (double)epidemicOutbreak_Model.V.InitialValue.Value.Value, }), epidemicOutbreak_Model.t.NumberDaysAfterStartDate(epidemicOutbreak_Model.t.StartDate).Value.Value, epidemicOutbreak_Model.t.NumberDaysAfterStartDate(epidemicOutbreak_Model.t.EndDate).Value.Value, epidemicOutbreak_Model.t.NumberDaysAfterStartDate(epidemicOutbreak_Model.t.EndDate).Value.Value - epidemicOutbreak_Model.t.NumberDaysAfterStartDate(epidemicOutbreak_Model.t.StartDate).Value.Value + 1, this.f( epidemicOutbreak_Model.N, epidemicOutbreak_Model.p, epidemicOutbreak_Model.β, epidemicOutbreak_Model.γ, epidemicOutbreak_Model.δ, epidemicOutbreak_Model.ε, epidemicOutbreak_Model.μ, epidemicOutbreak_Model.τ, epidemicOutbreak_Model.E, epidemicOutbreak_Model.I, epidemicOutbreak_Model.R, epidemicOutbreak_Model.S, epidemicOutbreak_Model.V)); // E this.E = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayLatentIndividuals.E_Calculation().Calculate( epidemicOutbreak_Model.t, RungeKuttaResults); // I this.I = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayInfectedIndividuals.I_Calculation().Calculate( epidemicOutbreak_Model.t, RungeKuttaResults); // R this.R = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayTreatedIndividuals.R_Calculation().Calculate( epidemicOutbreak_Model.t, RungeKuttaResults); // S this.S = new C19M.M.C.A.Gumel2006.Classes.Calculations.DaySusceptibleIndividuals.S_Calculation().Calculate( epidemicOutbreak_Model.t, RungeKuttaResults); // V this.V = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayVaccinatedIndividuals.V_Calculation().Calculate( epidemicOutbreak_Model.t, RungeKuttaResults); }
public EpidemicOutbreak_Export( IGumel2006_Context Gumel2006_Context) { this.Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); this.Gumel2006_Context = Gumel2006_Context; this.EpidemicOutbreak_Solution = new C19M.M.C.A.Gumel2006.Classes.Solutions.EpidemicOutbreak_Solution(); }
public RescaledDiseaseTransmission_Export( IGumel2006_Context Gumel2006_Context) { this.Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); this.Gumel2006_Context = Gumel2006_Context; this.RescaledDiseaseTransmission_Solution = new C19M.M.C.A.Gumel2006.Classes.Solutions.RescaledDiseaseTransmission_Solution(); }
public EpidemicOutbreak_Model( IGumel2006_Context context) { this.Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // Indices // t this.t = new Classes.Indices.t( context.EndDate, context.NumberDaysAfterStartDate, context.StartDate); // Parameters // N this.N = new C19M.M.C.A.Gumel2006.Classes.Parameters.Rescaled.N( context.NaturalMortalityRate, context.RecruitmentRateSusceptibleHumans); // p this.p = new C19M.M.C.A.Gumel2006.Classes.Parameters.Rescaled.p( context.NaturalMortalityRate, context.VaccinationCoverageRate); // β this.β = new C19M.M.C.A.Gumel2006.Classes.Parameters.Rescaled.β( context.DiseaseInducedMortalityRate, context.EffectiveContactRate, context.RecoveryRate, context.NaturalMortalityRate); // γ this.γ = new C19M.M.C.A.Gumel2006.Classes.Parameters.Rescaled.γ( context.DiseaseInducedMortalityRate, context.DevelopmentClinicalSymptomsRate, context.RecoveryRate, context.NaturalMortalityRate); // δ this.δ = new C19M.M.C.A.Gumel2006.Classes.Parameters.RecoveryRate.δ( context.RecoveryRate); // ε this.ε = new C19M.M.C.A.Gumel2006.Classes.Parameters.Rescaled.ε( new FhirDecimal(0m)); // μ this.μ = new C19M.M.C.A.Gumel2006.Classes.Parameters.NaturalMortalityRate.μ( context.NaturalMortalityRate); // τ this.τ = new C19M.M.C.A.Gumel2006.Classes.Parameters.VaccineEfficacy.τ( context.VaccineEfficacy); // Variables // E(t) this.E = new C19M.M.C.A.Gumel2006.Classes.Variables.LatentIndividuals.E( context.InitialValueLatentIndividuals); // I(t) this.I = new C19M.M.C.A.Gumel2006.Classes.Variables.InfectedIndividuals.I( context.InitialValueInfectedIndividuals); // R(t) this.R = new C19M.M.C.A.Gumel2006.Classes.Variables.TreatedIndividuals.R( context.InitialValueTreatedIndividuals); // S(t) this.S = new C19M.M.C.A.Gumel2006.Classes.Variables.SusceptibleIndividuals.S( context.InitialValueSusceptibleIndividuals); // V(t) this.V = new C19M.M.C.A.Gumel2006.Classes.Variables.VaccinatedIndividuals.V( context.InitialValueVaccinatedIndividuals); }
public DiseaseTransmission_Model( IGumel2006_Context context) { this.Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // Indices // t this.t = new Classes.Indices.t( context.EndDate, context.NumberDaysAfterStartDate, context.StartDate); // Parameters // d this.d = new C19M.M.C.A.Gumel2006.Classes.Parameters.DiseaseInducedMortalityRate.d( context.DiseaseInducedMortalityRate); // α this.α = new C19M.M.C.A.Gumel2006.Classes.Parameters.DevelopmentClinicalSymptomsRate.α( context.DevelopmentClinicalSymptomsRate); // β this.β = new C19M.M.C.A.Gumel2006.Classes.Parameters.EffectiveContactRate.β( context.EffectiveContactRate); // δ this.δ = new C19M.M.C.A.Gumel2006.Classes.Parameters.RecoveryRate.δ( context.RecoveryRate); // μ this.μ = new C19M.M.C.A.Gumel2006.Classes.Parameters.NaturalMortalityRate.μ( context.NaturalMortalityRate); // ξ this.ξ = new C19M.M.C.A.Gumel2006.Classes.Parameters.VaccinationCoverageRate.ξ( context.VaccinationCoverageRate); // Π this.Π = new C19M.M.C.A.Gumel2006.Classes.Parameters.RecruitmentRateSusceptibleHumans.Π( context.RecruitmentRateSusceptibleHumans); // τ this.τ = new C19M.M.C.A.Gumel2006.Classes.Parameters.VaccineEfficacy.τ( context.VaccineEfficacy); // Variables // E(t) this.E = new C19M.M.C.A.Gumel2006.Classes.Variables.LatentIndividuals.E( context.InitialValueLatentIndividuals); // I(t) this.I = new C19M.M.C.A.Gumel2006.Classes.Variables.InfectedIndividuals.I( context.InitialValueInfectedIndividuals); // R(t) this.R = new C19M.M.C.A.Gumel2006.Classes.Variables.TreatedIndividuals.R( context.InitialValueTreatedIndividuals); // S(t) this.S = new C19M.M.C.A.Gumel2006.Classes.Variables.SusceptibleIndividuals.S( context.InitialValueSusceptibleIndividuals); // V(t) this.V = new C19M.M.C.A.Gumel2006.Classes.Variables.VaccinatedIndividuals.V( context.InitialValueVaccinatedIndividuals); }
public void Solve( IGumel2006_Context Gumel2006_Context) { IDiseaseTransmission_Model diseaseTransmission_Model = new C19M.M.C.A.Gumel2006.Classes.Models.DiseaseTransmission_Model( Gumel2006_Context); MathNet.Numerics.LinearAlgebra.Vector <double>[] RungeKuttaResults = MathNet.Numerics.OdeSolvers.RungeKutta.FourthOrder( MathNet.Numerics.LinearAlgebra.Vector <double> .Build.Dense(new[] { (double)diseaseTransmission_Model.E.InitialValue.Value.Value, (double)diseaseTransmission_Model.I.InitialValue.Value.Value, (double)diseaseTransmission_Model.R.InitialValue.Value.Value, (double)diseaseTransmission_Model.S.InitialValue.Value.Value, (double)diseaseTransmission_Model.V.InitialValue.Value.Value, }), diseaseTransmission_Model.t.NumberDaysAfterStartDate(diseaseTransmission_Model.t.StartDate).Value.Value, diseaseTransmission_Model.t.NumberDaysAfterStartDate(diseaseTransmission_Model.t.EndDate).Value.Value, diseaseTransmission_Model.t.NumberDaysAfterStartDate(diseaseTransmission_Model.t.EndDate).Value.Value - diseaseTransmission_Model.t.NumberDaysAfterStartDate(diseaseTransmission_Model.t.StartDate).Value.Value + 1, this.f( diseaseTransmission_Model.d, diseaseTransmission_Model.α, diseaseTransmission_Model.β, diseaseTransmission_Model.δ, diseaseTransmission_Model.μ, diseaseTransmission_Model.ξ, diseaseTransmission_Model.Π, diseaseTransmission_Model.τ, diseaseTransmission_Model.E, diseaseTransmission_Model.I, diseaseTransmission_Model.R, diseaseTransmission_Model.S, diseaseTransmission_Model.V)); // E this.E = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayLatentIndividuals.E_Calculation().Calculate( diseaseTransmission_Model.t, RungeKuttaResults); // I this.I = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayInfectedIndividuals.I_Calculation().Calculate( diseaseTransmission_Model.t, RungeKuttaResults); // R this.R = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayTreatedIndividuals.R_Calculation().Calculate( diseaseTransmission_Model.t, RungeKuttaResults); // S this.S = new C19M.M.C.A.Gumel2006.Classes.Calculations.DaySusceptibleIndividuals.S_Calculation().Calculate( diseaseTransmission_Model.t, RungeKuttaResults); // V this.V = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayVaccinatedIndividuals.V_Calculation().Calculate( diseaseTransmission_Model.t, RungeKuttaResults); // DayDiseaseInducedDeaths this.DayDiseaseInducedDeaths = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayDiseaseInducedDeaths.DayDiseaseInducedDeaths_Calculation().Calculate( diseaseTransmission_Model.t, diseaseTransmission_Model.d, this.I); // DayProbableCases this.DayProbableCases = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayProbableCases.DayProbableCases_Calculation().Calculate( diseaseTransmission_Model.t, this.E, this.I, this.R); // DayCumulativeDiseaseInducedDeaths this.DayCumulativeDiseaseInducedDeaths = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayCumulativeDiseaseInducedDeaths.DayCumulativeDiseaseInducedDeaths_Calculation().Calculate( diseaseTransmission_Model.t, this.DayDiseaseInducedDeaths); // DayCumulativeProbableCases this.DayCumulativeProbableCases = new C19M.M.C.A.Gumel2006.Classes.Calculations.DayCumulativeProbableCases.DayCumulativeProbableCases_Calculation().Calculate( diseaseTransmission_Model.t, this.DayProbableCases); }