int main(
int argc,
char* argv[])
{
"1.0");
appParamsManager.
load(argc, argv);
Param diffCoefNum(diffCoef.
v()*dt.
v()/dx.v()/dx.v());
auto gSize(dx.v()*AVec<>(size));
std::cout << "Data initialization... ";
auto ball(normalize(
generateDFSphere(10, .5*gSize+makeAVec(.2,.1,.3)),
dx.v()));
auto ballMapMem(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto ballB(normalize(-generateDFSphere(24, .5*gSize),dx.v() ));
auto ballBMapMem(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto cField(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
std::cout << "Finished" << endl;
std::cout << "Numerics initialization... ";
auto nm(generateFDAdvectionDiffusion(cField, diffCoefNum.
v(), templ));
nm->init();
std::vector<asl::SPNumMethod> bc;
bc.push_back(generateBCConstantGradient2(cField, 0.1, ballMapMem, templ));
initAll(bc);
std::cout << "Finished" << endl;
std::cout << "Computing..." << flush;
executeAll(bc);
for (unsigned int i(1); i < 201; ++i)
{
nm->execute();
executeAll(bc);
if (!(i%40))
{
cout << i << endl;
}
}
cout << "Finished" << endl;
cout << "Computation statistic:" << endl;
cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
return 0;
}
void load(int argc, char *argv[])
const double realTime() const
const double processorTime() const
const double processorLoad() const
Updatable value. This class stores value and its TimeStamp.
void addScalars(std::string name, AbstractData &data)
SPBCond generateBCConstantValue(SPAbstractDataWithGhostNodes d, double v, const std::vector< SlicesNames > &sl)
Bondary condition that puts fixed value in each point.
const VectorTemplate & d3q15()
Vector template.
void initData(SPAbstractData d, double a)