예제 #1
0
 /// <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);
            }
        }