コード例 #1
0
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],
コード例 #2
0
ファイル: parallel_cylinder2D.py プロジェクト: wuhao1938/fvm
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')
コード例 #3
0
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)
コード例 #4
0
ファイル: beamTest3D.py プロジェクト: wuhao1938/fvm
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],
コード例 #5
0
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")
コード例 #6
0
### ===================== 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()
コード例 #7
0
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 ###