54 vector<AVec<>> rect({.5*
makeAVec( .866*a,-b,-a*.5),.5*
makeAVec(-.866*a,-b, a*.5),
56 vector<AVec<>> r1(rect.size());
57 vector<AVec<>> r2(rect.size());
58 auto r1C(
makeAVec(x,y+rCyl*.5+b*.5,hCyl));
59 auto r2C(
makeAVec(x,y-rCyl*.5-b*.5,hCyl));
60 for(
unsigned int i(0); i<rect.size();++i)
76 vector<double> xValues;
77 vector<double> yValues;
79 for(
unsigned int i(0); i < 8; ++i)
80 for(
unsigned int j(0); j < 10; ++j)
82 xValues.push_back(25.+ 20.*i);
83 yValues.push_back(25.+ 15.*j);
87 for(
unsigned int i(1); i < xValues.size(); ++i)
94 int main(
int argc,
char* argv[])
100 appParamsManager.
load(argc, argv);
106 Param nuNum(nu.
v()*dt.
v()/dx.
v()/dx.
v());
112 std::cout <<
"Data initialization... ";
116 auto mirrorsMapMem(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
119 std::cout <<
"Finished" << endl;
121 std::cout <<
"Numerics initialization... ";
144 std::cout <<
"Finished" << endl;
145 std::cout <<
"Computing...";
151 writer.
addVector(
"v", *lbgk->getVelocity());
158 bcNoSlipM->execute();
160 bcNoSlipV->execute();
164 for (
unsigned int i(0); i < 1000 ; ++i)
170 bcNoSlipM->execute();
174 bcNoSlipV->execute();
180 std::cout <<
"Finished" << endl;
182 cout <<
"time=" << timer.
getTime() <<
"; clockTime=" 186 std::cout <<
"Output...";
187 std::cout <<
"Finished" << endl;
188 std::cout <<
"Ok" << endl;
const double getTime() const
const double getProcessorLoad() const
int main(int argc, char *argv[])
Numerical method for fluid flow.
const double getClockTime() const
asl::SPDistanceFunction generateMirror(double x, double y)
void addVector(std::string name, AbstractData &data)
SPDistanceFunction generateDFConvexPolygonPrism(std::vector< AVec< double >> points)
generates infinite prism with convex polygon at its base
SPDistanceFunction generateDFPlane(const AVec< double > &n, const AVec< double > &p0)
asl::UValue< double > Param
asl::SPDistanceFunction generateMirrors()
SPBCond generateBCConstantVelocity(SPLBGK nm, AVec<> v, const std::vector< SlicesNames > &sl)
const VectorTemplate & d3q15()
Vector template.
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
void initData(SPAbstractData d, double a)
void addScalars(std::string name, AbstractData &data)
SPBCond generateBCConstantPressure(SPLBGK nm, double p, const std::vector< SlicesNames > &sl)
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
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
contains different kernels for preprocessing and posprocessing of data used by LBGK ...
SPBCond generateBCNoSlip(SPLBGK nm, const std::vector< SlicesNames > &sl)