コード例 #1
0
    def __init__(self, Model, settings ):
        KratosMultiphysics.Process.__init__(self)

        model_part = Model[settings["model_part_name"].GetString()]

        params = KratosMultiphysics.Parameters("{}")
        params.AddValue("model_part_name",settings["model_part_name"])
        params.AddValue("variable_name",settings["variable_name"])
        if settings.Has("is_fixed"):
            params.AddValue("is_fixed",settings["is_fixed"])
        
        if settings.Has("hydrostatic"):
            if settings["hydrostatic"].GetBool() == False:
                params.AddValue("value",settings["value"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, params)
                else:
                    params.AddValue("table",settings["table"])
                    self.process = KratosPoro.ApplyDoubleTableProcess(model_part, params)
            else:
                params.AddValue("gravity_direction",settings["gravity_direction"])
                params.AddValue("reference_coordinate",settings["reference_coordinate"])
                params.AddValue("specific_weight",settings["specific_weight"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosPoro.ApplyConstantHydrostaticPressureProcess(model_part, params)
                else:
                    params.AddValue("table",settings["table"])
                    self.process = KratosPoro.ApplyHydrostaticPressureTableProcess(model_part, params)
        else:
            params.AddValue("value",settings["value"])
            if settings["table"].GetInt() == 0:
                self.process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, params)
            else:
                params.AddValue("table",settings["table"])
                self.process = KratosPoro.ApplyDoubleTableProcess(model_part, params)
コード例 #2
0
 def __init__(self, Model, settings ):
     KratosMultiphysics.Process.__init__(self)
     
     model_part = Model[settings["model_part_name"].GetString()]
     variable_name = settings["variable_name"].GetString()
     
     # Auxiliar x-component parameters creation
     x_params = KratosMultiphysics.Parameters("{}")           
     x_params.AddValue("model_part_name",settings["model_part_name"])
     x_params.AddValue("mesh_id",settings["mesh_id"])
     x_params.AddValue("is_fixed",settings["is_fixed_x"])
     x_params.AddValue("value",settings["value"][0])
     x_params.AddEmptyValue("variable_name").SetString(variable_name+"_X")
     
     self.x_component_process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, x_params)
         
     # Auxiliar y-component parameters creation
     y_params = KratosMultiphysics.Parameters("{}")
     y_params.AddValue("model_part_name",settings["model_part_name"])
     y_params.AddValue("mesh_id",settings["mesh_id"])
     y_params.AddValue("is_fixed",settings["is_fixed_y"])
     y_params.AddValue("value",settings["value"][1])
     y_params.AddEmptyValue("variable_name").SetString(variable_name+"_Y")
     
     self.y_component_process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, y_params)
         
     # Auxiliar x-component parameters creation
     z_params = KratosMultiphysics.Parameters("{}")
     z_params.AddValue("model_part_name",settings["model_part_name"])
     z_params.AddValue("mesh_id",settings["mesh_id"])
     z_params.AddValue("is_fixed",settings["is_fixed_z"])
     z_params.AddValue("value",settings["value"][2])
     z_params.AddEmptyValue("variable_name").SetString(variable_name+"_Z")
     
     self.z_component_process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, z_params)
コード例 #3
0
    def __init__(self, Model, settings):
        KratosMultiphysics.Process.__init__(self)

        model_part = Model[settings["model_part_name"].GetString()]

        self.components_process_list = []

        if settings["active"][0].GetBool() == True:
            normal_params = KratosMultiphysics.Parameters("{}")
            normal_params.AddValue("model_part_name",
                                   settings["model_part_name"])
            normal_params.AddValue("mesh_id", settings["mesh_id"])
            normal_params.AddValue("variable_name", settings["variable_name"])
            if settings["hydrostatic"].GetBool() == False:
                normal_params.AddValue("value", settings["value"][0])
                if settings["table"][0].GetInt() == 0:
                    self.components_process_list.append(
                        KratosMultiphysics.ApplyConstantScalarValueProcess(
                            model_part, normal_params))
                else:
                    normal_params.AddValue("table", settings["table"][0])
                    self.components_process_list.append(
                        KratosPoro.ApplyDoubleTableProcess(
                            model_part, normal_params))
            else:
                normal_params.AddValue("gravity_direction",
                                       settings["gravity_direction"])
                normal_params.AddValue("reference_coordinate",
                                       settings["reference_coordinate"])
                normal_params.AddValue("specific_weight",
                                       settings["specific_weight"])
                if settings["table"][0].GetInt() == 0:
                    self.components_process_list.append(
                        KratosPoro.ApplyConstantHydrostaticPressureProcess(
                            model_part, normal_params))
                else:
                    normal_params.AddValue("table", settings["table"][0])
                    self.components_process_list.append(
                        KratosPoro.ApplyHydrostaticPressureTableProcess(
                            model_part, normal_params))

        if settings["active"][1].GetBool() == True:
            tangential_params = KratosMultiphysics.Parameters("{}")
            tangential_params.AddValue("model_part_name",
                                       settings["model_part_name"])
            tangential_params.AddValue("mesh_id", settings["mesh_id"])
            tangential_params.AddEmptyValue("variable_name").SetString(
                "TANGENTIAL_CONTACT_STRESS")  # Note: this is not general
            tangential_params.AddValue("value", settings["value"][1])
            if settings["table"][1].GetInt() == 0:
                self.components_process_list.append(
                    KratosMultiphysics.ApplyConstantScalarValueProcess(
                        model_part, tangential_params))
            else:
                tangential_params.AddValue("table", settings["table"][1])
                self.components_process_list.append(
                    KratosPoro.ApplyDoubleTableProcess(model_part,
                                                       tangential_params))
コード例 #4
0
    def __init__(self, Model, settings ):
        KratosMultiphysics.Process.__init__(self)

        model_part = Model[settings["model_part_name"].GetString()]
        variable_name = settings["variable_name"].GetString()

        self.components_process_list = []

        if settings["active"][0].GetBool() == True:
            x_params = KratosMultiphysics.Parameters("{}")
            x_params.AddValue("model_part_name",settings["model_part_name"])
            if settings.Has("is_fixed"):
                x_params.AddValue("is_fixed",settings["is_fixed"][0])
            x_params.AddValue("value",settings["value"][0])
            x_params.AddEmptyValue("variable_name").SetString(variable_name+"_X")
            if settings["table"][0].GetInt() == 0:
                self.components_process_list.append(KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, x_params))
            else:
                x_params.AddValue("table",settings["table"][0])
                self.components_process_list.append(KratosFemDem.ApplyComponentTableProcess(model_part, x_params))

        if settings["active"][1].GetBool() == True:
            y_params = KratosMultiphysics.Parameters("{}")
            y_params.AddValue("model_part_name",settings["model_part_name"])
            if settings.Has("is_fixed"):
                y_params.AddValue("is_fixed",settings["is_fixed"][1])
            y_params.AddValue("value",settings["value"][1])
            y_params.AddEmptyValue("variable_name").SetString(variable_name+"_Y")
            if settings["table"][1].GetInt() == 0:
                self.components_process_list.append(KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, y_params))
            else:
                y_params.AddValue("table",settings["table"][1])
                self.components_process_list.append(KratosFemDem.ApplyComponentTableProcess(model_part, y_params))

        if settings["active"][2].GetBool() == True:
            z_params = KratosMultiphysics.Parameters("{}")
            z_params.AddValue("model_part_name",settings["model_part_name"])
            if settings.Has("is_fixed"):
                z_params.AddValue("is_fixed",settings["is_fixed"][2])
            z_params.AddValue("value",settings["value"][2])
            z_params.AddEmptyValue("variable_name").SetString(variable_name+"_Z")
            if settings["table"][2].GetInt() == 0:
                self.components_process_list.append(KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, z_params))
            else:
                z_params.AddValue("table",settings["table"][2])
                self.components_process_list.append(KratosFemDem.ApplyComponentTableProcess(model_part, z_params))
コード例 #5
0
ファイル: process_factory.py プロジェクト: yasodhar008/Kratos
def Factory(settings, Model):
    if(settings["process_name"].GetString() == "ApplyConstantScalarValueProcess"):
        model_part = Model[settings["Parameters"]["model_part_name"].GetString()]
        return KM.ApplyConstantScalarValueProcess(model_part, settings["Parameters"])

    elif(settings["process_name"].GetString() == "ApplyConstantVectorValueProcess"):
        model_part = Model[settings["Parameters"]["model_part_name"].GetString()]
        return KM.ApplyConstantVectorValueProcess(model_part, settings["Parameters"])

    raise Exception("Process name not found ",)
コード例 #6
0
    def __init__(self, Model, settings ):
        KratosMultiphysics.Process.__init__(self)

        model_part = Model[settings["model_part_name"].GetString()]

        params = KratosMultiphysics.Parameters("{}")
        params.AddValue("model_part_name",settings["model_part_name"])
        params.AddValue("variable_name",settings["variable_name"])
        if settings.Has("is_fixed"):
            params.AddValue("is_fixed",settings["is_fixed"])
        params.AddValue("value",settings["value"])
        if settings["table"].GetInt() == 0:
            self.process = KratosMultiphysics.ApplyConstantScalarValueProcess(model_part, params)
        else:
            params.AddValue("table",settings["table"])
            self.process = KratosFluidTransport.ApplyDoubleTableProcess(model_part, params)
コード例 #7
0
    def __init__(self, Model, settings):
        KratosMultiphysics.Process.__init__(self)

        self.model_part = Model[settings["model_part_name"].GetString()]

        self.params = KratosMultiphysics.Parameters("{}")
        self.params.AddValue("model_part_name", settings["model_part_name"])
        self.params.AddValue("variable_name", settings["variable_name"])
        if settings.Has("is_fixed"):
            self.params.AddValue("is_fixed", settings["is_fixed"])

        if settings.Has("pressure_tension_cut_off"):
            self.params.AddValue("pressure_tension_cut_off",
                                 settings["pressure_tension_cut_off"])

        if settings.Has("fluid_pressure_type"):
            # if settings["hydrostatic"].GetBool() == False:
            if settings["fluid_pressure_type"].GetString() == "Uniform":
                self.params.AddValue("value", settings["value"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosMultiphysics.ApplyConstantScalarValueProcess(
                        self.model_part, self.params)
                else:
                    self.params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyDoubleTableProcess(
                        self.model_part, self.params)
            elif settings["fluid_pressure_type"].GetString() == "Hydrostatic":
                self.params.AddValue("gravity_direction",
                                     settings["gravity_direction"])
                self.params.AddValue("reference_coordinate",
                                     settings["reference_coordinate"])
                self.params.AddValue("specific_weight",
                                     settings["specific_weight"])

                if settings["table"].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantHydrostaticPressureProcess(
                        self.model_part, self.params)
                else:
                    self.params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyHydrostaticPressureTableProcess(
                        self.model_part, self.params)
            elif settings["fluid_pressure_type"].GetString(
            ) == "Phreatic_Line":
                self.params.AddValue("gravity_direction",
                                     settings["gravity_direction"])
                self.params.AddValue("out_of_plane_direction",
                                     settings["out_of_plane_direction"])
                self.params.AddValue("first_reference_coordinate",
                                     settings["first_reference_coordinate"])
                self.params.AddValue("second_reference_coordinate",
                                     settings["second_reference_coordinate"])
                self.params.AddValue("specific_weight",
                                     settings["specific_weight"])
                if settings["table"][0].GetInt(
                ) == 0 and settings["table"][1].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantPhreaticLinePressureProcess(
                        self.model_part, self.params)
                else:
                    self.params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyPhreaticLinePressureTableProcess(
                        self.model_part, self.params)
            elif settings["fluid_pressure_type"].GetString(
            ) == "Interpolate_Line":
                self.params.AddValue("gravity_direction",
                                     settings["gravity_direction"])
                self.params.AddValue("out_of_plane_direction",
                                     settings["out_of_plane_direction"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantInterpolateLinePressureProcess(
                        self.model_part, self.params)
                else:
                    self.process = KratosGeo.ApplyTimeDependentInterpolateLinePressureProcess(
                        self.model_part, self.params)
            elif settings["fluid_pressure_type"].GetString(
            ) == "Phreatic_Surface":
                self.params.AddValue("gravity_direction",
                                     settings["gravity_direction"])
                self.params.AddValue("first_reference_coordinate",
                                     settings["first_reference_coordinate"])
                self.params.AddValue("second_reference_coordinate",
                                     settings["second_reference_coordinate"])
                self.params.AddValue("third_reference_coordinate",
                                     settings["third_reference_coordinate"])
                self.params.AddValue("specific_weight",
                                     settings["specific_weight"])
                if settings["table"][0].GetInt(
                ) == 0 and settings["table"][1].GetInt(
                ) == 0 and settings["table"][2].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantPhreaticSurfacePressureProcess(
                        self.model_part, self.params)
                else:
                    self.params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyPhreaticSurfacePressureTableProcess(
                        self.model_part, self.params)
            else:
                raise Exception("unkown fluid_pressure_type!")

        else:
            self.params.AddValue("value", settings["value"])
            if settings["table"].GetInt() == 0:
                self.process = KratosMultiphysics.ApplyConstantScalarValueProcess(
                    self.model_part, self.params)
            else:
                self.params.AddValue("table", settings["table"])
                self.process = KratosGeo.ApplyDoubleTableProcess(
                    self.model_part, self.params)
コード例 #8
0
    def __init__(self, Model, settings):
        KratosMultiphysics.Process.__init__(self)

        self.model_part = Model[settings["model_part_name"].GetString()]

        self.components_process_list = []

        if settings["active"][0].GetBool() == True:
            self.normal_params = KratosMultiphysics.Parameters("{}")
            self.normal_params.AddValue("model_part_name",
                                        settings["model_part_name"])
            self.normal_params.AddValue("variable_name",
                                        settings["variable_name"])

            if settings["fluid_pressure_type"].GetString() == "Uniform":
                self.normal_params.AddValue("value", settings["value"][0])
                if settings["table"][0].GetInt() == 0:
                    self.components_process_list.append(
                        KratosMultiphysics.ApplyConstantScalarValueProcess(
                            self.model_part, self.normal_params))
                else:
                    self.normal_params.AddValue("table", settings["table"][0])
                    self.components_process_list.append(
                        KratosGeo.ApplyDoubleTableProcess(
                            self.model_part, self.normal_params))
            elif settings["fluid_pressure_type"].GetString() == "Hydrostatic":
                self.normal_params.AddValue("gravity_direction",
                                            settings["gravity_direction"])
                self.normal_params.AddValue("reference_coordinate",
                                            settings["reference_coordinate"])
                self.normal_params.AddValue("specific_weight",
                                            settings["specific_weight"])
                if settings["table"][0].GetInt() == 0:
                    self.components_process_list.append(
                        KratosGeo.
                        ApplyConstantBoundaryHydrostaticPressureProcess(
                            self.model_part, self.normal_params))
                else:
                    self.normal_params.AddValue("table", settings["table"][0])
                    self.components_process_list.append(
                        KratosGeo.ApplyBoundaryHydrostaticPressureTableProcess(
                            self.model_part, self.normal_params))
            elif settings["fluid_pressure_type"].GetString(
            ) == "Phreatic_Line":
                self.normal_params.AddValue("gravity_direction",
                                            settings["gravity_direction"])
                self.normal_params.AddValue("out_of_plane_direction",
                                            settings["out_of_plane_direction"])
                self.normal_params.AddValue(
                    "first_reference_coordinate",
                    settings["first_reference_coordinate"])
                self.normal_params.AddValue(
                    "second_reference_coordinate",
                    settings["second_reference_coordinate"])
                self.normal_params.AddValue("specific_weight",
                                            settings["specific_weight"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantBoundaryPhreaticLinePressureProcess(
                        self.model_part, self.normal_params)
                else:
                    self.normal_params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyBoundaryPhreaticLinePressureTableProcess(
                        self.model_part, self.normal_params)
            elif settings["fluid_pressure_type"].GetString(
            ) == "Phreatic_Surface":
                self.normal_params.AddValue("gravity_direction",
                                            settings["gravity_direction"])
                self.normal_params.AddValue(
                    "first_reference_coordinate",
                    settings["first_reference_coordinate"])
                self.normal_params.AddValue(
                    "second_reference_coordinate",
                    settings["second_reference_coordinate"])
                self.normal_params.AddValue(
                    "third_reference_coordinate",
                    settings["third_reference_coordinate"])
                self.normal_params.AddValue("specific_weight",
                                            settings["specific_weight"])
                if settings["table"].GetInt() == 0:
                    self.process = KratosGeo.ApplyConstantBoundaryPhreaticSurfacePressureProcess(
                        self.model_part, self.normal_params)
                else:
                    self.normal_params.AddValue("table", settings["table"])
                    self.process = KratosGeo.ApplyBoundaryPhreaticSurfacePressureTableProcess(
                        self.model_part, self.normal_params)
            else:
                raise Exception("unkown fluid_pressure_type!")

        if settings["active"][1].GetBool() == True:
            tangential_params = KratosMultiphysics.Parameters("{}")
            tangential_params.AddValue("model_part_name",
                                       settings["model_part_name"])
            tangential_params.AddEmptyValue("variable_name").SetString(
                "TANGENTIAL_CONTACT_STRESS")  # Note: this is not general
            tangential_params.AddValue("value", settings["value"][1])
            if settings["table"][1].GetInt() == 0:
                self.components_process_list.append(
                    KratosMultiphysics.ApplyConstantScalarValueProcess(
                        self.model_part, tangential_params))
            else:
                tangential_params.AddValue("table", settings["table"][1])
                self.components_process_list.append(
                    KratosGeo.ApplyDoubleTableProcess(self.model_part,
                                                      tangential_params))