def AddExtraVariables(self): spheres_model_part = self.all_model_parts.Get('SpheresPart') fluid_model_part = self.all_model_parts.Get('FluidPart') # building lists of variables for which memory is to be allocated # TEMPORARY, HORRIBLE !!! import variables_management as vars_man vars_man.ConstructListsOfVariables(self.pp) fluid_model_part = self.all_model_parts.Get('FluidPart') if "REACTION" in self.pp.nodal_results: fluid_model_part.AddNodalSolutionStepVariable(REACTION) if "DISTANCE" in self.pp.nodal_results: fluid_model_part.AddNodalSolutionStepVariable(DISTANCE) # importing the solvers needed SolverSettings = self.pp.FluidSolverConfiguration self.solver_module = import_solver(SolverSettings) # caution with breaking up this block (memory allocation)! { self.solver_module.AddVariables(fluid_model_part, SolverSettings) vars_man.AddNodalVariables(fluid_model_part, self.pp.fluid_vars) # MOD. # } # self.ReadFluidModelPart() # Creating necessary directories [post_path, data_and_results, graphs_path, MPI_results] = self.procedures.CreateDirectories( str(self.main_path), str(self.pp.CFD_DEM.problem_name)) vars_man.AddNodalVariables(spheres_model_part, self.pp.dem_vars) vars_man.AddNodalVariables(self.rigid_face_model_part, self.pp.rigid_faces_vars) vars_man.AddNodalVariables(self.DEM_inlet_model_part, self.pp.inlet_vars) # adding extra process info variables vars_man.AddingExtraProcessInfoVariables(self.pp, fluid_model_part, spheres_model_part)
scheme.AddSpheresVariables(DEM_inlet_model_part) procedures.AddCommonVariables(rigid_face_model_part, DEM_parameters) procedures.AddRigidFaceVariables(rigid_face_model_part, DEM_parameters) procedures.AddMpiVariables(rigid_face_model_part) vars_man.AddNodalVariables(spheres_model_part, pp.dem_vars) vars_man.AddNodalVariables(rigid_face_model_part, pp.rigid_faces_vars) vars_man.AddNodalVariables(DEM_inlet_model_part, pp.inlet_vars) # If Lalplacian form = 2, free all pressure Dofs # laplacian_form = pp.laplacian_form # if(laplacian_form >= 2): # for node in fluid_model_part.Nodes: # node.Free(PRESSURE) # adding extra process info variables vars_man.AddingExtraProcessInfoVariables(pp, fluid_model_part, spheres_model_part) # defining a model part for the mixed part mixed_model_part = ModelPart("MixedPart") # Reading the model_part spheres_mp_filename = DEM_parameters.problem_name + "DEM" model_part_io_spheres = ModelPartIO(spheres_mp_filename) if (hasattr(DEM_parameters, "do_not_perform_initial_partition") and DEM_parameters.do_not_perform_initial_partition == 1): pass else: parallelutils.PerformInitialPartition(model_part_io_spheres) [model_part_io_spheres, spheres_model_part, MPICommSetup] = parallelutils.SetCommunicator(spheres_model_part, model_part_io_spheres, spheres_mp_filename)
def AddExtraVariables(self): spheres_model_part = self.all_model_parts.Get('SpheresPart') fluid_model_part = self.all_model_parts.Get('FluidPart') # building lists of variables for which memory is to be allocated # TEMPORARY, HORRIBLE !!! import variables_management as vars_man vars_man.ConstructListsOfVariables(self.pp) #_____________________________________________________________________________________________________________________________________ # # F L U I D B L O C K B E G I N S #_____________________________________________________________________________________________________________________________________ # defining variables to be used # GID IO IS NOT USING THIS NOW. TO BE REMOVED ONCE THE "PRINT IN POINTS" # CODE IS NOT USING IT variables_dictionary = { "PRESSURE": PRESSURE, "VELOCITY": VELOCITY, "MU": MU, # MOD. "BUOYANCY": BUOYANCY, # MOD. "DRAG_FORCE": DRAG_FORCE, # MOD. "LIFT_FORCE": LIFT_FORCE } # MOD. fluid_model_part = self.all_model_parts.Get('FluidPart') if "REACTION" in self.pp.nodal_results: fluid_model_part.AddNodalSolutionStepVariable(REACTION) if "DISTANCE" in self.pp.nodal_results: fluid_model_part.AddNodalSolutionStepVariable(DISTANCE) # importing the solvers needed SolverSettings = self.pp.FluidSolverConfiguration self.solver_module = import_solver(SolverSettings) # caution with breaking up this block (memory allocation)! { self.solver_module.AddVariables(fluid_model_part, SolverSettings) vars_man.AddNodalVariables(fluid_model_part, self.pp.fluid_vars) # MOD. # } # self.ReadFluidModelPart() # Creating necessary directories [post_path, data_and_results, graphs_path, MPI_results] = self.procedures.CreateDirectories( str(self.main_path), str(self.pp.CFD_DEM.problem_name)) #_____________________________________________________________________________________________________________________________________ # # F L U I D B L O C K E N D S #_____________________________________________________________________________________________________________________________________ # Add variables vars_man.AddNodalVariables(spheres_model_part, self.pp.dem_vars) vars_man.AddNodalVariables(self.rigid_face_model_part, self.pp.rigid_faces_vars) vars_man.AddNodalVariables(self.DEM_inlet_model_part, self.pp.inlet_vars) # adding extra process info variables vars_man.AddingExtraProcessInfoVariables(self.pp, fluid_model_part, spheres_model_part)