コード例 #1
0
    def CreateAssignmentProcess(self, params):

        if (self.value_is_numeric):

            params.AddValue("variable_name", self.settings["variable_name"])

            counter = 0
            for i in self.value:
                params["value"][counter].SetDouble(i)
                counter += 1

            self.AssignValueProcess = KratosSolid.AssignVectorToConditionsProcess(
                self.model_part, params)

        else:

            #function values are assigned to a vector variable :: transformation is needed
            if (isinstance(self.var, KratosMultiphysics.Array1DVariable3)):
                variable_name = self.settings["variable_name"].GetString(
                ) + "_VECTOR"
                print(" variable name modified:", variable_name)
                params.AddEmptyValue("variable_name")
                params["variable_name"].SetString(variable_name)
            else:
                params.AddValue("variable_name",
                                self.settings["variable_name"])

            counter = 0
            for i in self.value:
                params["value"][counter].SetDouble(i)
                counter += 1

            self.AssignValueProcess = KratosSolid.AssignVectorFieldToConditionsProcess(
                self.model_part, self.compiled_function, "function",
                self.value_is_spatial_function, params)
コード例 #2
0
    def ExecuteInitialize(self):

        # set processes
        params = KratosMultiphysics.Parameters("{}")
        params.AddValue("model_part_name", self.settings["model_part_name"])
        params.AddValue("mesh_id", self.settings["mesh_id"])

        params.AddEmptyValue("value")
        params.__setitem__("value", self.settings["direction"])

        if (self.value_is_numeric):

            params.AddValue("variable_name", self.settings["variable_name"])

            counter = 0
            for i in self.value:
                params["value"][counter].SetDouble(i)
                counter += 1

            self.AssignValueProcess = KratosSolid.AssignVectorToConditionsProcess(
                self.model_part, params)

        else:

            #function values are assigned to a vector variable :: transformation is needed
            if (type(self.var) == KratosMultiphysics.Array1DVariable3):
                variable_name = self.settings["variable_name"].GetString(
                ) + "S_VECTOR"
                print(" variable name modified:", variable_name)
                params.AddEmptyValue("variable_name")
                params["variable_name"].SetString(variable_name)
            else:
                params.AddValue("variable_name",
                                self.settings["variable_name"])

            counter = 0
            for i in self.value:
                params["value"][counter].SetDouble(i)
                counter += 1

            self.AssignValueProcess = KratosSolid.AssignVectorFieldToConditionsProcess(
                self.model_part, self.compiled_function, "function",
                self.value_is_spatial_function, params)

        if (self.IsInsideInterval() and self.interval_string == "initial"):
            self.AssignValueProcess.Execute()