def GetBassetForceTools(self): self.basset_force_tool = SDP.BassetForceTools()
if DEM_parameters.meso_scale_length <= 0.0 and spheres_model_part.NumberOfElements(0) > 0: biggest_size = 2 * dem_physics_calculator.CalculateMaxNodalVariable(spheres_model_part, RADIUS) DEM_parameters.meso_scale_length = 20 * biggest_size elif spheres_model_part.NumberOfElements(0) == 0: DEM_parameters.meso_scale_length = 1.0 projection_module = CFD_DEM_coupling.ProjectionModule(fluid_model_part, spheres_model_part, rigid_face_model_part, domain_size, pp) projection_module.UpdateDatabase(h_min) # creating a custom functions calculator for the implementation of additional custom functions custom_functions_tool = swim_proc.FunctionsCalculator(pp) # creating a basset_force tool to perform the operations associated with the calculation of this force along the path of each particle if pp.CFD_DEM.basset_force_type > 0: basset_force_tool = swim_proc.BassetForceTools() # creating a stationarity assessment tool stationarity_tool = swim_proc.StationarityAssessmentTool(DEM_parameters.max_pressure_variation_rate_tol , custom_functions_tool) # creating a debug tool dem_volume_tool = swim_proc.ProjectionDebugUtils(DEM_parameters.fluid_domain_volume, fluid_model_part, spheres_model_part, custom_functions_tool) # creating a distance calculation process for the embedded technology # (used to calculate elemental distances defining the structure embedded in the fluid mesh) if (DEM_parameters.embedded_option): calculate_distance_process = CalculateSignedDistanceTo3DSkinProcess(rigid_face_model_part, fluid_model_part) calculate_distance_process.Execute() # constructing a model part for the DEM inlet. it contains the DEM elements to be released during the simulation