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)
示例#2
0
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)
示例#3
0
    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)