示例#1
0
    def Initialize(self):

        print("::[Pfem Fluid Nodal Integration Solver]:: -START-")

        # Get the computing model part
        self.computing_model_part = self.GetComputingModelPart()

        self.fluid_solver = KratosPfemFluid.NodalTwoStepVPStrategy(
            self.computing_model_part, self.velocity_linear_solver,
            self.pressure_linear_solver,
            self.settings["reform_dofs_at_each_step"].GetBool(),
            self.settings["velocity_tolerance"].GetDouble(),
            self.settings["pressure_tolerance"].GetDouble(),
            self.settings["maximum_pressure_iterations"].GetInt(),
            self.settings["time_order"].GetInt(),
            self.main_model_part.ProcessInfo[
                KratosMultiphysics.SPACE_DIMENSION])

        echo_level = self.settings["echo_level"].GetInt()

        # Set echo_level
        self.fluid_solver.SetEchoLevel(echo_level)

        # 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 Nodal Integration Solver]:: -END- ")
    def Initialize(self):

        # Get the computing model part
        self.computing_model_part = self.GetComputingModelPart()

        physics_type = self.settings["physics_type"].GetString()

        if (physics_type == "fsi"):
            self.fluid_solver = KratosPfemFluid.NodalTwoStepVPStrategyForFSI(
                self.computing_model_part, self.velocity_linear_solver,
                self.pressure_linear_solver,
                self.settings["reform_dofs_at_each_step"].GetBool(),
                self.settings["velocity_tolerance"].GetDouble(),
                self.settings["pressure_tolerance"].GetDouble(),
                self.settings["maximum_pressure_iterations"].GetInt(),
                self.settings["time_order"].GetInt(),
                self.main_model_part.ProcessInfo[
                    KratosMultiphysics.SPACE_DIMENSION])
        else:
            self.fluid_solver = KratosPfemFluid.NodalTwoStepVPStrategy(
                self.computing_model_part, self.velocity_linear_solver,
                self.pressure_linear_solver,
                self.settings["reform_dofs_at_each_step"].GetBool(),
                self.settings["velocity_tolerance"].GetDouble(),
                self.settings["pressure_tolerance"].GetDouble(),
                self.settings["maximum_pressure_iterations"].GetInt(),
                self.settings["time_order"].GetInt(),
                self.main_model_part.ProcessInfo[
                    KratosMultiphysics.SPACE_DIMENSION])

        echo_level = self.settings["echo_level"].GetInt()

        # Set echo_level
        self.fluid_solver.SetEchoLevel(echo_level)

        # Check if everything is assigned correctly
        self.fluid_solver.Check()