nmesh = 1 npart = [MPI.COMM_WORLD.Get_size()] etype = [etype[options.type]] if options.time: # time profile for partmesh part_mesh_time = zeros(1, dtype='d') part_mesh_start = zeros(1, dtype='d') part_mesh_end = zeros(1, dtype='d') part_mesh_maxtime = zeros(1, dtype='d') part_mesh_mintime = zeros(1, dtype='d') part_mesh_start[0] = MPI.Wtime() #partMesh constructor and setTypes part_mesh = fvmparallel.MeshPartitioner(fluent_meshes, npart, etype) part_mesh.setWeightType(0) part_mesh.setNumFlag(0) #actions part_mesh.partition() part_mesh.mesh() meshes = part_mesh.meshList() if options.time: part_mesh_end[0] = MPI.Wtime() part_mesh_time[0] = part_mesh_end[0] - part_mesh_start[0] MPI.COMM_WORLD.Allreduce([part_mesh_time, MPI.DOUBLE], [part_mesh_maxtime, MPI.DOUBLE], op=MPI.MAX) MPI.COMM_WORLD.Allreduce([part_mesh_time, MPI.DOUBLE], [part_mesh_mintime, MPI.DOUBLE],
fluidReader.read() solidReader.read() fluidMeshes0 = fluidReader.getMeshList() solidMeshes = solidReader.getMeshList() nodeCoord = solidMeshes[0].getNodeCoordinates().asNumPyArray() nodeCoord[:, :] *= 0.5 #paritioning nmesh = 1 npart = [MPI.COMM_WORLD.Get_size()] print "options.typeFluid = ", options.type etypeFluid = [etype[options.type]] #partMesh constructor and setTypes part_mesh_fluid = fvmparallel.MeshPartitioner(fluidMeshes0, npart, etypeFluid) part_mesh_fluid.setWeightType(0) part_mesh_fluid.setNumFlag(0) #actions part_mesh_fluid.isDebug(0) part_mesh_fluid.partition() part_mesh_fluid.mesh() fluidMeshes = part_mesh_fluid.meshList() if not MPI.COMM_WORLD.Get_rank(): print "partition is done for Fluid Mesh" if options.time: solver_start = zeros(1, dtype='d') solver_end = zeros(1, dtype='d') solver_time = zeros(1, dtype='d') solver_maxtime = zeros(1, dtype='d')
if not MPI.COMM_WORLD.Get_rank(): print "parmesh is processing" if options.time: # time profile for partmesh part_mesh_time = zeros(1,dtype='d') part_mesh_start = zeros(1, dtype='d') part_mesh_end = zeros(1, dtype='d') part_mesh_maxtime = zeros(1,dtype='d') part_mesh_mintime = zeros(1, dtype='d') part_mesh_start[0] = MPI.Wtime() #partMesh constructor and setTypes part_mesh = fvmparallel.MeshPartitioner( meshes, npartVec, etypeVec ); part_mesh.setWeightType(2); part_mesh.setNumFlag(0); #actions part_mesh.partition() part_mesh.mesh() #part_mesh.mesh_debug() part_meshes = part_mesh.meshList() #dismantling mesh multi_mesher = fvmbaseExt.MeshDismantler( part_meshes ) meshes = multi_mesher.debug_face_nodes() meshes = multi_mesher.meshList() #tecplotMesh.dumpTecplotMesh(2, meshes, options.type)
npart = [MPI.COMM_WORLD.Get_size()] etype = [etype[options.type]] if not MPI.COMM_WORLD.Get_rank(): print "parmesh is processing" if options.time: # time profile for partmesh part_mesh_time = zeros(1, dtype='d') part_mesh_start = zeros(1, dtype='d') part_mesh_end = zeros(1, dtype='d') part_mesh_maxtime = zeros(1, dtype='d') part_mesh_mintime = zeros(1, dtype='d') part_mesh_start[0] = MPI.Wtime() #partMesh constructor and setTypes part_mesh = fvmparallel.MeshPartitioner(pd.meshes, npart, etype) part_mesh.setWeightType(0) part_mesh.setNumFlag(0) #actions part_mesh.isCleanup(1) part_mesh.isDebug(0) part_mesh.partition() part_mesh.mesh() solid_meshes = part_mesh.meshList() reader = 0 pd.meshes = 0 if options.time: part_mesh_end[0] = MPI.Wtime() part_mesh_time[0] = part_mesh_end[0] - part_mesh_start[0] MPI.COMM_WORLD.Allreduce([part_mesh_time, MPI.DOUBLE],
reader = FluentCase(args[0]) #reader = FluentCase(fileBase+".cas") reader.read(); t0 = time.time() meshes_fluent = reader.getMeshList() nmesh = 1 npart = [MPI.COMM_WORLD.Get_size()] etype = [etype[options.type]] if not MPI.COMM_WORLD.Get_rank(): print "parmesh is processing" #Partitinoing of spatial mesh #partMesh constructor and setTypes part_mesh = fvmparallel.MeshPartitioner( meshes_fluent, npart, etype ); part_mesh.setWeightType(0); part_mesh.setNumFlag(0); #actions part_mesh.partition() part_mesh.mesh() #part_mesh.mesh_debug() meshes = part_mesh.meshList() #meshes = reader.getMeshList() geomFields = fvm.models.GeomFields('geom') metricsCalculator = fvm.models.MeshMetricsCalculatorA(geomFields,meshes) metricsCalculator.init() if MPI.COMM_WORLD.Get_rank()==0: vFile = open("uerr.xy","w")
### ===================== mesh read ===============================================### fileBase_output = "./" + str(int(-applied_voltage)) + "/" ### 3D fluid mesh fluidReader = FluentCase(args[0]) fluidReader.read(); fluent_meshes_fluid = fluidReader.getMeshList() #paritioning nmesh = 1 npart = [MPI.COMM_WORLD.Get_size()] print "options.typeFluid = ", options.type etypeFluid = [etype[options.type]] #partMesh constructor and setTypes part_mesh_fluid = fvmparallel.MeshPartitioner( fluent_meshes_fluid, npart, etypeFluid ); part_mesh_fluid.setWeightType(0); part_mesh_fluid.setNumFlag(0); #actions part_mesh_fluid.isDebug(0) part_mesh_fluid.partition() part_mesh_fluid.mesh() fluidMeshes = part_mesh_fluid.meshList() if not MPI.COMM_WORLD.Get_rank(): print "partition is done for Fluid Mesh" ### generate solid boundary mesh ### 2D plate mesh beamReader = FluentCase(args[1]) beamReader.read() solidMeshes = beamReader.getMeshList()
pd.probeFile = open(fileBaseOutput + "tipDisplacement-se.dat", "w") #pd.forceFile = open(fileBaseOutput+"beamForce-se.dat", "w") #pd.velocityFile = open(fileBaseOutput+"tipVelocity-se.dat", "w") ### read in mesh ### beamFile = fileBase + 'beam_500x10.cas' beamReader = FluentCase(beamFile) beamReader.read() solid_meshes = beamReader.getMeshList() nmesh = 1 npart = [MPI.COMM_WORLD.Get_size()] etype = [etype['quad']] #partMesh constructor and setTypes part_mesh = fvmparallel.MeshPartitioner(solid_meshes, npart, etype) part_mesh.setWeightType(0) part_mesh.setNumFlag(0) #actions part_mesh.isCleanup(0) part_mesh.isDebug(0) part_mesh.partition() part_mesh.mesh() part_mesh.extractBoundaryMesh() pd.solidMeshes = part_mesh.meshList() pd.solidBoundaryMeshes = [part_mesh.getBoundaryMesh()] if not MPI.COMM_WORLD.Get_rank(): print "partition done" ### geometry field ###