コード例 #1
0
    def _setup_formfinding(self, mp):
        linear_solver = KratosMultiphysics.SkylineLUFactorizationSolver()
        builder_and_solver = KratosMultiphysics.ResidualBasedBlockBuilderAndSolver(
            linear_solver)
        scheme = KratosMultiphysics.ResidualBasedIncrementalUpdateStaticScheme(
        )
        convergence_criterion = KratosMultiphysics.ResidualCriteria(
            1e-12, 1e-12)
        convergence_criterion.SetEchoLevel(0)

        max_iters = 1000
        compute_reactions = True
        reform_step_dofs = True
        move_mesh_flag = True
        proj_settings = KratosMultiphysics.Parameters("""{
                "model_part_name"  : "Structure",
                "echo_level"       : 0,
                "projection_type"  : "planar",
                "global_direction" : [1,0,0],
                "variable_name"    : "LOCAL_MATERIAL_AXIS_1",
                "visualize_in_vtk" : false,
                "method_specific_settings" : { },
                "check_local_space_dimension" : false
        }""")
        strategy = StructuralMechanicsApplication.FormfindingStrategy(
            mp, scheme, convergence_criterion, builder_and_solver, mp, False,
            "none", proj_settings, max_iters, compute_reactions,
            reform_step_dofs, move_mesh_flag)
        strategy.SetEchoLevel(0)
        strategy.Initialize()
        return strategy
コード例 #2
0
    def _create_mechanical_solution_strategy(self):
        computing_model_part = self.GetComputingModelPart()
        mechanical_scheme = self.get_solution_scheme()
        linear_solver = self.get_linear_solver()
        mechanical_convergence_criterion = self.get_convergence_criterion()
        builder_and_solver = self.get_builder_and_solver()


        # in some cases not all elements need to be reset by the formfinding strategy
        formfinding_model_part = self.GetComputingModelPart()
        if len(self.settings["formfinding_model_part_name"].GetString())>0:
            formfinding_model_part = computing_model_part.GetSubModelPart(self.settings["formfinding_model_part_name"].GetString())
        return StructuralMechanicsApplication.FormfindingStrategy(
                                                                computing_model_part,
                                                                mechanical_scheme,
                                                                linear_solver,
                                                                mechanical_convergence_criterion,
                                                                builder_and_solver,
                                                                formfinding_model_part,
                                                                self.settings["write_formfound_geometry_file"].GetBool(),
                                                                self.settings["printing_format"].GetString(),
                                                                self.settings["projection_settings"],
                                                                self.settings["max_iteration"].GetInt(),
                                                                self.settings["compute_reactions"].GetBool(),
                                                                self.settings["reform_dofs_at_each_step"].GetBool(),
                                                                self.settings["move_mesh_flag"].GetBool())