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 = PfemFluid.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("::[--Assign_Variable--]:: "+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 params.AddEmptyValue("entity_type").SetString("CONDITIONS") self.AssignValueProcess = PfemFluid.AssignVectorFieldToEntitiesProcess(self.model_part, self.compiled_function, "function", self.value_is_spatial_function, params) # in case of going to previous time step for time step reduction self.CreateUnAssignmentProcess(params)
def CreateUnAssignmentProcess(self, params): params["compound_assignment"].SetString( self.GetInverseAssigment( self.settings["compound_assignment"].GetString())) if (self.value_is_numeric): self.UnAssignValueProcess = PfemFluid.AssignVectorToConditionsProcess( self.model_part, params) else: self.UnAssignValueProcess = PfemFluid.AssignVectorFieldToEntitiesProcess( self.model_part, self.compiled_function, "function", self.value_is_spatial_function, params)