elif DEM_parameters.IntegrationScheme == 'Taylor_Scheme': scheme = TaylorScheme() elif DEM_parameters.IntegrationScheme == 'Newmark_Beta_Method': scheme = NewmarkBetaScheme(0.5, 0.25) elif DEM_parameters.IntegrationScheme == 'Verlet_Velocity': scheme = VerletVelocityScheme() elif DEM_parameters.IntegrationScheme == 'Hybrid_Bashforth': scheme = HybridBashforthScheme() else: KRATOSprint('Error: selected scheme not defined. Please select a different scheme') if DEM_parameters.ElementType == "SwimmingNanoParticle": scheme = TerminalVelocityScheme() # Creating a solver object and set the search strategy solver = SolverStrategy.SwimmingStrategy(spheres_model_part, rigid_face_model_part, cluster_model_part, DEM_inlet_model_part, creator_destructor, dem_fem_search, scheme, DEM_parameters, procedures) # Add variables procedures.AddCommonVariables(spheres_model_part, DEM_parameters) procedures.AddSpheresVariables(spheres_model_part, DEM_parameters) procedures.AddMpiVariables(spheres_model_part) solver.AddAdditionalVariables(spheres_model_part, DEM_parameters) scheme.AddSpheresVariables(spheres_model_part) procedures.AddCommonVariables(cluster_model_part, DEM_parameters) procedures.AddClusterVariables(cluster_model_part, DEM_parameters) procedures.AddMpiVariables(cluster_model_part) scheme.AddClustersVariables(cluster_model_part) procedures.AddCommonVariables(DEM_inlet_model_part, DEM_parameters) procedures.AddSpheresVariables(DEM_inlet_model_part, DEM_parameters) solver.AddAdditionalVariables(DEM_inlet_model_part, DEM_parameters) scheme.AddSpheresVariables(DEM_inlet_model_part)
elif DEM_parameters["IntegrationScheme"].GetString() == 'Newmark_Beta_Method': scheme = NewmarkBetaScheme(0.5, 0.25) elif DEM_parameters["IntegrationScheme"].GetString() == 'Verlet_Velocity': scheme = VerletVelocityScheme() elif DEM_parameters["IntegrationScheme"].GetString() == 'Hybrid_Bashforth': scheme = HybridBashforthScheme() else: KRATOSprint( 'Error: selected scheme not defined. Please select a different scheme') if DEM_parameters.ElementType == "SwimmingNanoParticle": scheme = TerminalVelocityScheme() # Creating a solver object and set the search strategy solver = SolverStrategy.SwimmingStrategy(all_model_parts, creator_destructor, dem_fem_search, scheme, DEM_parameters, procedures) # Add variables procedures.AddAllVariablesInAllModelParts(solver, scheme, all_model_parts, DEM_parameters) 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)