/// <summary> /// Step 2 of 2 for dynamic load balancing: restore this objects /// status after the grid has been re-distributed. /// </summary> public override void DataBackupBeforeBalancing(GridUpdateDataVaultBase L) { Timestepping.DataBackupBeforeBalancing(L); CurrentStateVector = null; CurrentResidualVector = null; ClearOperator(); }
/// <summary> /// /// </summary> protected override void CreateEquationsAndSolvers(GridUpdateDataVaultBase L) { if (L == null) { // +++++++++++++++++++++++++++++++++++++++++++++++++++ // Creation of time-integrator (initial, no balancing) // +++++++++++++++++++++++++++++++++++++++++++++++++++ InitSolver(); Timestepping.RegisterResidualLogger(new ResidualLogger(this.MPIRank, this.DatabaseDriver, new Guid())); } else { // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // restore BDF time-stepper after grid redistribution (dynamic load balancing) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Timestepping.DataRestoreAfterBalancing(L, CurrentState.Fields, CurrentResidual.Fields, base.LsTrk, base.MultigridSequence); } }