本文整理汇总了C++中MultiBlockLattice3D::getNz方法的典型用法代码示例。如果您正苦于以下问题:C++ MultiBlockLattice3D::getNz方法的具体用法?C++ MultiBlockLattice3D::getNz怎么用?C++ MultiBlockLattice3D::getNz使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MultiBlockLattice3D
的用法示例。
在下文中一共展示了MultiBlockLattice3D::getNz方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeResults
void writeResults(MultiBlockLattice3D<T,DESCRIPTOR>& lattice, MultiScalarField3D<T>& volumeFraction, plint iT)
{
static const plint nx = lattice.getNx();
static const plint ny = lattice.getNy();
static const plint nz = lattice.getNz();
Box3D slice(0, nx-1, ny/2, ny/2, 0, nz-1);
ImageWriter<T> imageWriter("leeloo");
imageWriter.writeScaledPpm(createFileName("u", iT, 6),
*computeVelocityNorm(lattice, slice));
imageWriter.writeScaledPpm(createFileName("rho", iT, 6),
*computeDensity(lattice, slice));
imageWriter.writeScaledPpm(createFileName("volumeFraction", iT, 6), *extractSubDomain(volumeFraction, slice));
// Use a marching-cube algorithm to reconstruct the free surface and write an STL file.
std::vector<T> isoLevels;
isoLevels.push_back((T) 0.5);
typedef TriangleSet<T>::Triangle Triangle;
std::vector<Triangle> triangles;
isoSurfaceMarchingCube(triangles, volumeFraction, isoLevels, volumeFraction.getBoundingBox());
TriangleSet<T>(triangles).writeBinarySTL(createFileName(outDir+"/interface", iT, 6)+".stl");
VtkImageOutput3D<T> vtkOut(createFileName("volumeFraction", iT, 6), 1.);
vtkOut.writeData<float>(volumeFraction, "vf", 1.);
}
示例2: writeGifs
void writeGifs(MultiBlockLattice3D<T,DESCRIPTOR>& lattice, plint iter)
{
const plint imSize = 600;
const plint nx = lattice.getNx();
const plint ny = lattice.getNy();
const plint nz = lattice.getNz();
Box3D slice(0, nx-1, 0, ny-1, nz/2, nz/2);
ImageWriter<T> imageWriter("leeloo");
imageWriter.writeScaledGif(createFileName("u", iter, 6),
*computeVelocityNorm(lattice, slice),
imSize, imSize );
}
示例3: writeGifs
void writeGifs(MultiBlockLattice3D<T,DESCRIPTOR>& lattice, plint iter){
const plint nx = lattice.getNx();
const plint ny = lattice.getNy();
const plint nz = lattice.getNz();
const plint imSize = 600;
ImageWriter<T> imageWriter("leeloo");
Box3D slice(0, nx-1, 0, ny-1, nz/2, nz/2);
//imageWriter.writeGif(createFileName("u", iT, 6),
//*computeDensity(lattice), );
imageWriter.writeGif( createFileName("rho", iter, 6),
*computeDensity(lattice, slice),
(T) rho0 - drho/1000000, (T) rho0 + drho/1000000, imSize, imSize);
}
示例4: main
int main(int argc, char* argv[]) {
plbInit(&argc, &argv);
T uMax;
plint N;
T nu_f,d_part,v_frac, v_inf;
std::string outDir;
try {
global::argv(1).read(d_part);
global::argv(2).read(N);
global::argv(3).read(v_frac);
global::argv(4).read(nu_f);
global::argv(5).read(v_inf);
global::argv(6).read(uMax);
global::argv(7).read(outDir);
} catch(PlbIOException& exception) {
pcout << exception.what() << endl;
pcout << "Command line arguments:\n";
pcout << "1 : d_part\n";
pcout << "2 : N per particle diameter\n";
pcout << "3 : particle volume fraction\n";
pcout << "4 : nu_fluid\n";
pcout << "5 : estimated v_inf\n";
pcout << "6 : uMax\n";
pcout << "7 : outDir\n";
exit(1);
}
std::string lbOutDir(outDir), demOutDir(outDir);
lbOutDir.append("tmp/");
demOutDir.append("post/");
global::directories().setOutputDir(lbOutDir);
const T rho_f = 1000;
LiggghtsCouplingWrapper wrapper(argv,global::mpi().getGlobalCommunicator());
// particle size and volume fraction are handed over to LIGGGHTS
// as variables (see LIGGGHTS docu for details)
wrapper.setVariable("r_part",d_part/2);
wrapper.setVariable("v_frac",v_frac);
wrapper.execFile("in.lbdem");
T g = 9.81;
const T lx = 1., ly = 1., lz = 2.;
T r_ = d_part/2.;
T rho_s = 1100.;
T m = r_*r_*r_*4./3.*3.14*rho_s;
PhysUnits3D<T> units(2.*r_,v_inf,nu_f,lx,ly,lz,N,uMax,rho_f);
IncomprFlowParam<T> parameters(units.getLbParam());
plint nx = parameters.getNx(), ny = parameters.getNy(), nz = parameters.getNz();
// get lattice decomposition from LIGGGHTS and create lattice according to parallelization
// given in the LIGGGHTS input script
LatticeDecomposition lDec(parameters.getNx(),parameters.getNy(),parameters.getNz(),
wrapper.lmp);
SparseBlockStructure3D blockStructure = lDec.getBlockDistribution();
ExplicitThreadAttribution* threadAttribution = lDec.getThreadAttribution();
plint envelopeWidth = 1;
MultiBlockLattice3D<T, DESCRIPTOR>
lattice (MultiBlockManagement3D (blockStructure, threadAttribution, envelopeWidth ),
defaultMultiBlockPolicy3D().getBlockCommunicator(),
defaultMultiBlockPolicy3D().getCombinedStatistics(),
defaultMultiBlockPolicy3D().getMultiCellAccess<T,DESCRIPTOR>(),
new DYNAMICS );
defineDynamics(lattice,lattice.getBoundingBox(),new DYNAMICS);
const T maxT = ceil(3.*lz/v_inf);
const T vtkT = 0.1;
const T logT = 0.0000001;
const plint maxSteps = units.getLbSteps(maxT);
const plint vtkSteps = max<plint>(units.getLbSteps(vtkT),1);
const plint logSteps = max<plint>(units.getLbSteps(logT),1);
writeLogFile(parameters, "sedimenting spheres benchmark");
lattice.initialize();
T dt_phys = units.getPhysTime(1);
plint demSubsteps = 10;
T dt_dem = dt_phys/(T)demSubsteps;
//.........这里部分代码省略.........