def Initialize(self): # The time step utility needs the NODAL_H KM.FindNodalHProcess(self.GetComputingModelPart()).Execute() self.EstimateDeltaTimeUtility = SW.EstimateDtShallow(self.GetComputingModelPart(), self.settings["time_stepping"]) # Creating the solution strategy for the mesh stage self.conv_criteria = KM.DisplacementCriteria(self.settings["relative_tolerance"].GetDouble(), self.settings["absolute_tolerance"].GetDouble()) (self.conv_criteria).SetEchoLevel(self.echo_level) self.time_scheme = SW.ResidualBasedIncrementalUpdateWettingScheme(self._GetWettingModel()) # domain_size = self.main_model_part.ProcessInfo[KratosMultiphysics.DOMAIN_SIZE] # self.time_scheme = KratosMultiphysics.ResidualBasedIncrementalUpdateStaticSchemeSlip(domain_size, # DomainSize # domain_size+1) # BlockSize self.builder_and_solver = KM.ResidualBasedBlockBuilderAndSolver(self.linear_solver) self.solver = KM.ResidualBasedNewtonRaphsonStrategy(self.GetComputingModelPart(), self.time_scheme, self.linear_solver, self.conv_criteria, self.builder_and_solver, self.settings["maximum_iterations"].GetInt(), self.settings["compute_reactions"].GetBool(), self.settings["reform_dofs_at_each_step"].GetBool(), self.settings["move_mesh_flag"].GetBool()) self.main_model_part.ProcessInfo.SetValue(KM.DYNAMIC_TAU, self.settings["dynamic_tau"].GetDouble()) (self.solver).SetEchoLevel(max(0, self.echo_level-1)) (self.solver).Check() (self.solver).Initialize() KM.Logger.PrintInfo("::[ShallowWaterBaseSolver]::", "Mesh stage solver initialization finished")
def Initialize(self): # The time step utility needs the NODAL_H KM.FindNodalHProcess(self.GetComputingModelPart()).Execute() self.EstimateDeltaTimeUtility = SW.EstimateDtShallow( self.GetComputingModelPart(), self.settings["time_stepping"])