/// <summary> /// instantiation of <see cref="ApplicationWithSolver{T}.Timestepping"/> /// </summary> protected override void InitSolver() { if (base.Timestepping != null) { return; } XdgTimestepping solver = new XdgTimestepping( XOperator, CurrentState.Fields, CurrentResidual.Fields, Control.TimeSteppingScheme, UpdateLevelset, LevelSetHandling, MultigridOperatorConfig, MultigridSequence, Control.AgglomerationThreshold, Control.LinearSolver, Control.NonLinearSolver); base.Timestepping = solver; if (!object.ReferenceEquals(base.LsTrk, solver.LsTrk)) { throw new ApplicationException(); } }
/// <summary> /// /// </summary> protected override void InitSolver() { if (base.Timestepping != null) { return; } XdgTimestepping solver = new XdgTimestepping( SOperator, CurrentState.Fields, CurrentResidual.Fields, Control.TimeSteppingScheme, MultigridOperatorConfig, MultigridSequence, Control.LinearSolver, Control.NonLinearSolver); LsTrk = solver.LsTrk; // register the dummy tracker which the solver created internally for the DG case base.Timestepping = solver; }