def CreateAssignmentProcess(self, params): if (self.value_is_numeric): params.AddEmptyValue("value").SetDouble(self.value) self.AssignValueProcess = KratosSolid.AssignScalarToNodesProcess( self.model_part, params) else: self.AssignValueProcess = KratosSolid.AssignScalarFieldToNodesProcess( self.model_part, self.compiled_function, "function", self.value_is_spatial_function, params)
def ExecuteInitialize(self): # set processes self.FixDofsProcesses = [] self.FreeDofsProcesses = [] params = KratosMultiphysics.Parameters("{}") params.AddValue("model_part_name", self.settings["model_part_name"]) params.AddValue("mesh_id", self.settings["mesh_id"]) params.AddValue("variable_name", self.settings["variable_name"]) if( self.interval_string != "initial" and self.constrained == True ): fix_dof_process = KratosSolid.FixScalarDofProcess(self.model_part, params) self.FixDofsProcesses.append(fix_dof_process) free_dof_process = KratosSolid.FreeScalarDofProcess(self.model_part, params) self.FreeDofsProcesses.append(free_dof_process) self.fix_derivated_variable = False for dynamic_variable in self.AngularDynamicVariables: if dynamic_variable in self.variable_name: self.derivated_variable_name = "ROTATION" + self.variable_name[-2:] self.fix_derivated_variable = True if( self.fix_derivated_variable == False ): for dynamic_variable in self.LinearDynamicVariables: if dynamic_variable in self.variable_name: self.derivated_variable_name = "DISPLACEMENT" + self.variable_name[-2:] self.fix_derivated_variable = True if( self.fix_derivated_variable ): params["variable_name"].SetString(self.derivated_variable_name) fix_dof_process = KratosSolid.FixScalarDofProcess(self.model_part, params) self.FixDofsProcesses.append(fix_dof_process) free_dof_process = KratosSolid.FreeScalarDofProcess(self.model_part, params) self.FreeDofsProcesses.append(free_dof_process) params["variable_name"].SetString(self.settings["variable_name"].GetString()) if( self.value_is_numeric ): params.AddEmptyValue("value").SetDouble(self.value) self.AssignValueProcess = KratosSolid.AssignScalarToNodesProcess(self.model_part, params) else: self.AssignValueProcess = KratosSolid.AssignScalarFieldToNodesProcess(self.model_part, self.compiled_function, "function", self.value_is_spatial_function, params) if ( self.IsInsideInterval() and self.interval_string == "initial" ): self.AssignValueProcess.Execute()