def AddDofs(model_part): for node in model_part.Nodes: # adding dofs for fluid solution node.AddDof(PRESSURE) node.AddDof(FRACT_VEL_X) node.AddDof(FRACT_VEL_Y) node.AddDof(FRACT_VEL_Z) node.AddDof(VELOCITY_X) node.AddDof(VELOCITY_Y) node.AddDof(VELOCITY_Z) # adding dofs for convecting the distance function node.AddDof(DISTANCE) # node.AddDof(TEMPERATURE); monolithic_solver_eulerian.AddDofs(model_part) print("dofs for the levelset solver added correctly")
write_conditions = WriteConditionsFlag.WriteElementsOnly gid_io = TwoFluidGidIO(input_file_name, gid_mode, multifile, deformed_mesh_flag, write_conditions) # gid_io = TwoFluidGidIO(input_file_name,gid_mode,multifile,deformed_mesh_flag, write_conditions) model_part_io_fluid = ModelPartIO(input_file_name) model_part_io_fluid.ReadModelPart(fluid_model_part) # setting up the buffer size: SHOULD BE DONE AFTER READING!!! fluid_model_part.SetBufferSize(3) # adding dofs if (SolverType == "FractionalStep"): incompressible_fluid_solver.AddDofs(fluid_model_part) elif (SolverType == "monolithic_solver_eulerian"): monolithic_solver_eulerian.AddDofs(fluid_model_part) elif (SolverType == "monolithic_solver_eulerian_compressible"): monolithic_solver_eulerian_compressible.AddDofs(fluid_model_part) elif (SolverType == "monolithic_solver_lagrangian"): monolithic_solver_lagrangian_contact.AddDofs(fluid_model_part) # check to ensure that no node has zero density or pressure # for node in fluid_model_part.Nodes: # if((node.GetSolutionStepValue(DENSITY_WATER) == 0.0) and (node.GetSolutionStepValue(DENSITY_AIR) == 0.0)): # print "node ",node.Id," has zero density!" # raise 'node with zero density found' # if((node.GetSolutionStepValue(VISCOSITY_WATER) == 0.0) and (node.GetSolutionStepValue(VISCOSITY_AIR) == 0.0)): # print "node ",node.Id," has zero viscosity!" # raise 'node with zero VISCOSITY found' mesh_name = 0.0
def AddDofs(model_part): monolithic_solver_eulerian.AddDofs(model_part) pureconvection_solver.AddDofs(model_part, distance_settings) thermal_solver.AddDofs(model_part, temperature_settings) print("variables for the convection diffusion solver added correctly")
# reading the fluid part gid_mode = GiDPostMode.GiD_PostBinary multifile = MultiFileFlag.SingleFile deformed_mesh_flag = WriteDeformedMeshFlag.WriteUndeformed write_conditions = WriteConditionsFlag.WriteElementsOnly gid_io = GidIO(problem_name, gid_mode, multifile, deformed_mesh_flag, write_conditions) model_part_io_fluid = ModelPartIO(problem_name) model_part_io_fluid.ReadModelPart(fluid_model_part) # setting up the buffer size: SHOULD BE DONE AFTER READING!!! fluid_model_part.SetBufferSize(3) # adding dofs monolithic_solver.AddDofs(fluid_model_part) # Solver initialization fluid_solver = monolithic_solver.MonolithicSolver(fluid_model_part, domain_size) fluid_solver.rel_vel_tol = 1e-5 # default 1e-5 fluid_solver.abs_vel_tol = 1e-7 # default 1e-7 fluid_solver.rel_pres_tol = 1e-5 fluid_solver.abs_pres_tol = 1e-7 fluid_solver.dynamic_tau = dynamic_tau fluid_solver.oss_switch = oss_switch fluid_solver.Initialize() # Initial and boundary conditions for node in fluid_model_part.Nodes: if node.GetSolutionStepValue(FLAG_VARIABLE) == 1.0: