29#include <utilities/aslParametersManager.h>
30#include <aslDataInc.h>
31#include <math/aslTemplates.h>
32#include <aslGeomInc.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>
56 for (
int i = 0; i < block.
getSize()[0] / (2 * r + spacing); ++i)
58 for (
int j = 0; j < block.
getSize()[1] / (2 * r + spacing); ++j)
60 cylinder = generateDFCylinderInf(r, orientation,
asl::makeAVec(i * (2. * r + spacing) + r + spacing / 2., j * (2. * r + spacing) + r + spacing / 2., 0.));
61 resultGeometry = resultGeometry | cylinder;
65 return resultGeometry;
69int main(
int argc,
char* argv[])
75 appParamsManager.
load(argc, argv);
81 Param nuNum(nu.
v()*dt.
v()/dx.v()/dx.v());
84 auto gSize(dx.v()*
AVec<>(size));
87 std::cout <<
"Flow: Data initialization...";
95 std::cout <<
"Finished" << endl;
97 std::cout <<
"Flow: Numerics initialization...";
108 auto bcNoSlipM(generateBCNoSlip(lbgk, cylindersMapMem));
109 auto bcNoSlipV(generateBCNoSlipVel(lbgk, cylindersMapMem));
122 std::cout <<
"Finished" << endl;
123 std::cout <<
"Computing...";
129 writer.
addVector(
"v", *lbgk->getVelocity());
136 bcNoSlipM->execute();
138 bcNoSlipV->execute();
142 for (
unsigned int i(0); i < 1000; ++i)
148 bcNoSlipM->execute();
152 bcNoSlipV->execute();
159 cout <<
"Finished" << endl;
161 cout <<
"Computation statistic:" << endl;
162 cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
void load(int argc, char *argv[])
Bondary condition corresponding an in- or outflow boundary conditions with a given pressure.
virtual void init()
Builds the necesery internal data and kernels.
virtual void execute()
Executes the numerical procedure.
const DV & getSize() const
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)
asl::UValue< double > Param
asl::SPDistanceFunction generateOrderedCylinders(asl::Block &block)
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
std::shared_ptr< DistanceFunction > SPDistanceFunction
const VectorTemplate & d3q15()
Vector template.
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
std::shared_ptr< LBGK > SPLBGK
void initData(SPAbstractData d, double a)
std::shared_ptr< LBGKUtilities > SPLBGKUtilities