52 auto para = std::make_shared<Parameter>(1, 0);
54 para->setQuadricLimiters(0.01, 0.01, 0.01);
56 para->setMaxDev(simPara->getDevices().size());
57 para->setDevices(simPara->getDevices());
60 std::string gridPath = simPara->getGridPath() +
"/";
61 para->setOutputPath(simPara->getFilePath());
63 para->setPrintFiles(
true);
66 para->setMaxLevel(simPara->getNumberOfGridLevels());
68 para->setTimestepEnd(simPara->getEndTime());
69 para->setTimestepOut(simPara->getTimeStepLength());
70 para->setTimestepStartOut(1);
72 para->setViscosityLB(simPara->getViscosity());
73 para->setVelocityLB(simPara->getMaxVelocity());
74 para->setViscosityRatio(1.0);
75 para->setVelocityRatio(1.0);
76 para->setDensityRatio(1.0);
77 para->setFactorPressBC(100000.0);
79 para->setgeoVec(gridPath +
"geoVec.dat");
80 para->setcoordX(gridPath +
"coordX.dat");
81 para->setcoordY(gridPath +
"coordY.dat");
82 para->setcoordZ(gridPath +
"coordZ.dat");
83 para->setneighborX(gridPath +
"neighborX.dat");
84 para->setneighborY(gridPath +
"neighborY.dat");
85 para->setneighborZ(gridPath +
"neighborZ.dat");
86 para->setneighborWSB(gridPath +
"neighborWSB.dat");
87 para->setgeomBoundaryBcQs(gridPath +
"geomBoundaryQs.dat");
88 para->setgeomBoundaryBcValues(gridPath +
"geomBoundaryValues.dat");
89 para->setinletBcQs(gridPath +
"inletBoundaryQs.dat");
90 para->setinletBcValues(gridPath +
"inletBoundaryValues.dat");
91 para->setoutletBcQs(gridPath +
"outletBoundaryQs.dat");
92 para->setoutletBcValues(gridPath +
"outletBoundaryValues.dat");
93 para->settopBcQs(gridPath +
"topBoundaryQs.dat");
94 para->settopBcValues(gridPath +
"topBoundaryValues.dat");
95 para->setbottomBcQs(gridPath +
"bottomBoundaryQs.dat");
96 para->setbottomBcValues(gridPath +
"bottomBoundaryValues.dat");
97 para->setfrontBcQs(gridPath +
"frontBoundaryQs.dat");
98 para->setfrontBcValues(gridPath +
"frontBoundaryValues.dat");
99 para->setbackBcQs(gridPath +
"backBoundaryQs.dat");
100 para->setbackBcValues(gridPath +
"backBoundaryValues.dat");
101 para->setnumberNodes(gridPath +
"numberNodes.dat");
102 para->setLBMvsSI(gridPath +
"LBMvsSI.dat");
103 para->setscaleCFC(gridPath +
"scaleCFC.dat");
104 para->setscaleCFF(gridPath +
"scaleCFF.dat");
105 para->setscaleFCC(gridPath +
"scaleFCC.dat");
106 para->setscaleFCF(gridPath +
"scaleFCF.dat");
107 para->setscaleOffsetCF(gridPath +
"offsetVecCF.dat");
108 para->setscaleOffsetFC(gridPath +
"offsetVecFC.dat");
109 para->setDiffOn(
false);
110 para->setDoCheckPoint(
false);
111 para->setDoRestart(
false);
112 para->setUseGeometryValues(
false);
113 para->setCalc2ndOrderMoments(
false);
114 para->setCalc3rdOrderMoments(
false);
115 para->setCalcHighOrderMoments(
false);
116 para->setReadGeo(
false);
117 para->setCalcMean(
false);
118 para->setUseMeasurePoints(
false);
119 para->setForcing(0.0, 0.0, 0.0);
121 para->configureMainKernel(simPara->getKernelConfiguration()->getMainKernel());
122 para->setMultiKernelOn(simPara->getKernelConfiguration()->getMultiKernelOn());
123 para->setMultiKernelLevel(simPara->getKernelConfiguration()->getMultiKernelLevel());
124 para->setMultiKernel(simPara->getKernelConfiguration()->getMultiKernel());
129std::shared_ptr<NumericalTestGridReader>
makeGridReader(std::shared_ptr<InitialCondition> initialCondition,
130 std::shared_ptr<Parameter> para,
137 std::shared_ptr<InitialCondition>
condition,
138 std::shared_ptr<DataWriter> dataWriter)
140 auto cudaManager = std::make_shared<CudaMemoryManager>(para);
146 simulation->setDataWriter(dataWriter);
148 return [simulation]() { simulation->run(); };
An abstract class for communication between processes in parallel computation.
static std::shared_ptr< Communicator > getInstance()
std::shared_ptr< NumericalTestGridReader > makeGridReader(std::shared_ptr< InitialCondition > initialCondition, std::shared_ptr< Parameter > para, std::shared_ptr< CudaMemoryManager > cudaManager)
static std::shared_ptr< NumericalTestGridReader > getNewInstance(std::shared_ptr< vf::gpu::Parameter > para, std::shared_ptr< InitialCondition > initialCondition, std::shared_ptr< vf::gpu::CudaMemoryManager > cudaManager)
std::shared_ptr< T > SPtr
const std::function< void()> makeVirtualFluidSimulation(std::shared_ptr< Parameter > para, std::shared_ptr< InitialCondition > condition, std::shared_ptr< DataWriter > dataWriter)
std::shared_ptr< Parameter > makeParameter(std::shared_ptr< SimulationParameter > simPara)