예제 #1
0
    def _ExecuteAfterReading(self):

        self.thermal_model_part_name = "thermal_computing_domain"
        self.mechanical_model_part_name = "mechanical_computing_domain"

        # Create list of sub sub model parts (it is a copy of the standard lists with a different name)
        self.thermal_domain_sub_sub_model_part_list = []
        for i in range(self.settings["thermal_solver_settings"]["problem_domain_sub_model_part_list"].size()):
            self.thermal_domain_sub_sub_model_part_list.append("sub_"+self.settings["thermal_solver_settings"]["problem_domain_sub_model_part_list"][i].GetString())
        self.thermal_domain_sub_sub_model_part_list = KratosMultiphysics.Parameters(json.dumps(self.thermal_domain_sub_sub_model_part_list))

        self.thermal_loads_sub_sub_model_part_list = []
        for i in range(self.settings["thermal_solver_settings"]["thermal_loads_sub_model_part_list"].size()):
            self.thermal_loads_sub_sub_model_part_list.append("sub_"+self.settings["thermal_solver_settings"]["thermal_loads_sub_model_part_list"][i].GetString())
        self.thermal_loads_sub_sub_model_part_list = KratosMultiphysics.Parameters(json.dumps(self.thermal_loads_sub_sub_model_part_list))

        self.body_domain_sub_sub_model_part_list = []
        for i in range(self.settings["mechanical_solver_settings"]["body_domain_sub_model_part_list"].size()):
            self.body_domain_sub_sub_model_part_list.append("sub_"+self.settings["mechanical_solver_settings"]["body_domain_sub_model_part_list"][i].GetString())
        self.body_domain_sub_sub_model_part_list = KratosMultiphysics.Parameters(json.dumps(self.body_domain_sub_sub_model_part_list))

        self.loads_sub_sub_model_part_list = []
        for i in range(self.settings["mechanical_solver_settings"]["loads_sub_model_part_list"].size()):
            self.loads_sub_sub_model_part_list.append("sub_"+self.settings["mechanical_solver_settings"]["loads_sub_model_part_list"][i].GetString())
        self.loads_sub_sub_model_part_list = KratosMultiphysics.Parameters(json.dumps(self.loads_sub_sub_model_part_list))

        # Auxiliary Kratos parameters object to be called by the CheckAndPepareModelProcessDamThermal
        aux_params = KratosMultiphysics.Parameters("{}")
        aux_params.AddEmptyValue("thermal_model_part_name").SetString(self.thermal_model_part_name)
        aux_params.AddValue("thermal_domain_sub_model_part_list",self.settings["thermal_solver_settings"]["problem_domain_sub_model_part_list"])
        aux_params.AddValue("thermal_domain_sub_sub_model_part_list",self.thermal_domain_sub_sub_model_part_list)
        aux_params.AddValue("thermal_loads_sub_model_part_list",self.settings["thermal_solver_settings"]["thermal_loads_sub_model_part_list"])
        aux_params.AddValue("thermal_loads_sub_sub_model_part_list",self.thermal_loads_sub_sub_model_part_list)

        aux_params.AddEmptyValue("mechanical_model_part_name").SetString(self.mechanical_model_part_name)
        aux_params.AddValue("mechanical_domain_sub_model_part_list",self.settings["mechanical_solver_settings"]["problem_domain_sub_model_part_list"])
        aux_params.AddValue("mechanical_loads_sub_model_part_list",self.settings["mechanical_solver_settings"]["mechanical_loads_sub_model_part_list"])
        aux_params.AddValue("body_domain_sub_model_part_list",self.settings["mechanical_solver_settings"]["body_domain_sub_model_part_list"])
        aux_params.AddValue("body_domain_sub_sub_model_part_list",self.body_domain_sub_sub_model_part_list)
        aux_params.AddValue("loads_sub_model_part_list",self.settings["mechanical_solver_settings"]["loads_sub_model_part_list"])
        aux_params.AddValue("loads_sub_sub_model_part_list",self.loads_sub_sub_model_part_list)

        # CheckAndPrepareModelProcessDamMechanical creates the solid_computational_model_part
        from KratosMultiphysics.DamApplication import check_and_prepare_model_process_dam_thermal
        check_and_prepare_model_process_dam_thermal.CheckAndPrepareModelProcessDamThermal(self.main_model_part, aux_params).Execute()

        # Constitutive law import
        from KratosMultiphysics.DamApplication import dam_constitutive_law_utility
        dam_constitutive_law_utility.SetConstitutiveLaw(self.main_model_part)

        self.main_model_part.SetBufferSize( self.settings["buffer_size"].GetInt() )
        minimum_buffer_size = self.GetMinimumBufferSize()
        if(minimum_buffer_size > self.main_model_part.GetBufferSize()):
            self.main_model_part.SetBufferSize( minimum_buffer_size )
예제 #2
0
    def _ExecuteAfterReading(self):

        self.computing_model_part_name = "mechanical_computing_domain"

        # Auxiliary Kratos parameters object to be called by the CheckAndPepareModelProcess
        aux_params = KratosMultiphysics.Parameters("{}")
        aux_params.AddEmptyValue("computing_model_part_name").SetString(self.computing_model_part_name)

        # CheckAndPrepareModelProcess creates the solid_computational_model_part
        from KratosMultiphysics.PoromechanicsApplication import check_and_prepare_model_process_poro
        check_and_prepare_model_process_poro.CheckAndPrepareModelProcess(self.main_model_part, aux_params).Execute()

        # Constitutive law import
        from KratosMultiphysics.DamApplication import dam_constitutive_law_utility
        dam_constitutive_law_utility.SetConstitutiveLaw(self.main_model_part)

        self.main_model_part.SetBufferSize( self.settings["buffer_size"].GetInt() )
        minimum_buffer_size = self.GetMinimumBufferSize()
        if(minimum_buffer_size > self.main_model_part.GetBufferSize()):
            self.main_model_part.SetBufferSize( minimum_buffer_size )