52int main(
int argc,
char* argv[])
59 appParamsManager.
load(argc, argv);
65 Param nuNum(nu.
v()*dt.
v()/dx.v()/dx.v());
67 std::cout <<
"Data initialization... " << flush;
74 auto forceField(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
77 std::cout <<
"Finished" << endl;
79 std::cout <<
"Numerics initialization... " << flush;
89 std::vector<asl::SPNumMethod> bc;
90 std::vector<asl::SPNumMethod> bcV;
92 bc.push_back(generateBCNoSlip(lbgk,
object));
93 bcV.push_back(generateBCNoSlipVel(lbgk,
object));
94 bc.push_back(generateBCConstantPressureVelocity(lbgk, 1.,
95 makeAVec(-0.1,0.,-0.05),
100 auto computeForce(generateComputeSurfaceForce(lbgk, forceField,
object));
101 computeForce->init();
104 std::cout <<
"Finished" << endl;
105 std::cout <<
"Computing..." << endl;
110 writer.
addVector(
"v", *lbgk->getVelocity());
115 computeForce->execute();
123 for (
unsigned int i(1); i < 101; ++i)
135 computeForce->execute();
141 cout <<
"Finished" << endl;
143 cout <<
"Computation statistic:" << endl;
144 cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
148 cout <<
"time1 = " << timer1.
realTime() <<
"; time2 = " << timer2.
realTime() << endl;
asl::UValue< double > Param
void load(int argc, char *argv[])
Numerical method for fluid flow.
contains different kernels for preprocessing and posprocessing of data used by LBGK
const double realTime() const
const double processorTime() const
const double processorLoad() const
Updatable value. This class stores value and its TimeStamp.
void addVector(std::string name, AbstractData &data)
void addScalars(std::string name, AbstractData &data)
SPDataWithGhostNodesACLData readSurface(const string &fileName, double dx, acl::CommandQueue queue=acl::hardware.defaultQueue)
const VectorTemplate & d3q15()
Vector template.
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
std::shared_ptr< LBGKUtilities > SPLBGKUtilities
std::shared_ptr< LBGK > SPLBGK
void initData(SPAbstractData d, double a)