def Initialize(self): """This function initializes the PfemFluidExplicitSolver Usage: It is designed to be called ONCE, BEFORE the execution of the solution-loop """ self.KratosPrintInfo("::[Pfem Fluid Explicit Solver]:: -START-") # Get the computing model part self.computing_model_part = self.GetComputingModelPart() mechanical_scheme = KratosPfemFluid.FirstOrderForwardEulerScheme( 1.0e-4, 1.0, 0, 0) import KratosMultiphysics.python_linear_solver_factory as linear_solver_factory linear_solver = linear_solver_factory.ConstructSolver( self.settings["velocity_linear_solver_settings"]) self.fluid_solver = KratosPfemFluid.ExplicitStrategy( self.computing_model_part, mechanical_scheme, linear_solver, False, True, True) # Set echo_level self.fluid_solver.SetEchoLevel(self.settings["echo_level"].GetInt()) # Set initialize flag if self.main_model_part.ProcessInfo[ KratosMultiphysics.IS_RESTARTED] == True: self.mechanical_solver.SetInitializePerformedFlag(True) # Check if everything is assigned correctly self.fluid_solver.Check() self.KratosPrintInfo("::[Pfem Fluid Explicit Solver]:: -END- ")
def Initialize(self): print("::[Pfem Fluid Explicit Solver]:: -START-") # Get the computing model part self.computing_model_part = self.GetComputingModelPart() #mechanical_scheme = KratosSolidMechanics.ExplicitCentralDifferencesScheme(self.settings["max_delta_time"].GetDouble(), # self.settings["fraction_delta_time"].GetDouble(), # self.settings["time_step_prediction_level"].GetDouble(), # self.settings["rayleigh_damping"].GetBool()) mechanical_scheme = KratosPfemFluid.FirstOrderForwardEulerScheme(1.0e-4, 1.0, 0, 0) import KratosMultiphysics.python_linear_solver_factory as linear_solver_factory linear_solver = linear_solver_factory.ConstructSolver(self.settings["velocity_linear_solver_settings"]) #self.fluid_solver = KratosPfemFluid.ExplicitStrategy(self.computing_model_part, # mechanical_scheme, # linear_solver, # self.settings["compute_reactions"].GetBool(), # self.settings["reform_dofs_at_each_step"].GetBool(), # self.settings["move_mesh_flag"].GetBool()) self.fluid_solver = KratosPfemFluid.ExplicitStrategy(self.computing_model_part, mechanical_scheme, linear_solver, False, True, True) # Set echo_level self.fluid_solver.SetEchoLevel(self.settings["echo_level"].GetInt()) # Set initialize flag if( self.main_model_part.ProcessInfo[KratosMultiphysics.IS_RESTARTED] == True ): self.mechanical_solver.SetInitializePerformedFlag(True) # Check if everything is assigned correctly self.fluid_solver.Check() print("::[Pfem Fluid Explicit Solver]:: -END- ")