29 #include <math/aslTemplates.h> 30 #include <aslGeomInc.h> 31 #include <math/aslPositionFunction.h> 32 #include <aslDataInc.h> 33 #include <acl/aclGenerators.h> 34 #include <writers/aslVTKFormatWriters.h> 35 #include <num/aslLBGK.h> 36 #include <num/aslLBGKBC.h> 37 #include <utilities/aslTimer.h> 38 #include <acl/aclUtilities.h> 39 #include <readers/aslVTKFormatReaders.h> 40 #include <utilities/aslParametersManager.h> 61 center[1]=bl.
position[1]+.25*rTunnel;
72 int main(
int argc,
char* argv[])
79 appParamsManager.
load(argc, argv);
91 std::cout <<
"Data initialization..." << endl;
95 asl::Block block(locomotive->getInternalBlock());
97 auto tunnelMap(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
100 auto forceField(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
103 std::cout <<
"Finished"<<endl;
105 std::cout <<
"Numerics initialization..." << endl;
117 std::vector<asl::SPNumMethod> bc;
118 std::vector<asl::SPNumMethod> bcV;
132 computeForce->init();
134 cout <<
"Finished" << endl;
135 cout <<
"Computing..." << endl;
140 writer.addScalars(
"tunnel", *tunnelMap);
141 writer.addScalars(
"rho", *lbgk->getRho());
142 writer.addVector(
"v", *lbgk->getVelocity());
143 writer.addVector(
"force", *forceField);
147 computeForce->execute();
152 for(
unsigned int i(1); i < 2001; ++i)
160 computeForce->execute();
166 cout <<
"Finished" << endl;
168 cout <<
"Computation statistic:" << endl;
169 cout <<
"time = " << timer.
getTime() <<
"; clockTime = " const double getTime() const
const double getProcessorLoad() const
Numerical method for fluid flow.
const double getClockTime() const
asl::UValue< double > Param
int main(int argc, char *argv[])
const AVec normalize(const AVec< T > &a)
void initAll(std::vector< T * > &v)
asl::SPDistanceFunction generateTunnel(asl::Block &bl)
SPDataWithGhostNodesACLData readSurface(const string &fileName, double dx, acl::CommandQueue queue=acl::hardware.defaultQueue)
SPBCond generateBCConstantPressureVelocity(SPLBGK nm, double p, AVec<> v, const std::vector< SlicesNames > &sl)
const V getBPosition() const
SPDistanceFunction generateDFPlane(const AVec< double > &n, const AVec< double > &p0)
const VectorTemplate & d3q15()
Vector template.
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
SPNumMethod generateBCVelocityVel(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map)
void initData(SPAbstractData d, double a)
void executeAll(std::vector< T * > &v)
void addScalars(std::string name, AbstractData &data)
const DV & getSize() const
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
SPNumMethod generateComputeSurfaceForce(SPLBGK nm, SPDataWithGhostNodesACLData fF, SPAbstractDataWithGhostNodes map)
SPDistanceFunction generateDFCylinder(double r, const AVec< double > &l, const AVec< double > &c)
generates cylinder
void load(int argc, char *argv[])
SPNumMethod generateBCNoSlipVel(SPLBGK nmU, SPAbstractDataWithGhostNodes map)
for velocity field
SPPositionFunction generatePFConstant(const AVec< double > &a)
contains different kernels for preprocessing and posprocessing of data used by LBGK ...
SPNumMethod generateBCVelocity(SPLBGK nm, SPPositionFunction v, SPAbstractDataWithGhostNodes map)
SPBCond generateBCNoSlip(SPLBGK nm, const std::vector< SlicesNames > &sl)