#include <aslDataInc.h>
#include <acl/aclGenerators.h>
#include <writers/aslVTKFormatWriters.h>
#include <num/aslFDElasticity.h>
#include <num/aslFDElasticityBC.h>
#include <utilities/aslTimer.h>
#include <utilities/aslParametersManager.h>
#include <math/aslTemplates.h>
#include <acl/aclMath/aclVectorOfElements.h>
#include <aslGeomInc.h>
#include <acl/aclUtilities.h>
int main(
int argc,
char* argv[])
{
"1.0");
appParamsManager.
load(argc, argv);
Param bulkModulusNum(bulkModulus.
v()/rho.
v()/dx.v()/dx.v()*dt.
v());
Param shearModulusNum(shearModulus.
v()/rho.
v()/dx.v()/dx.v()*dt.
v());
std::cout << "Data initialization... " << flush;
initData(mapX, mapDF);
std::cout << "Finished" << endl;
std::cout << "Numerics initialization... " << flush;
auto elasticity(generateFDElasticityStatic(displacement,
elasticity->init();
std::vector<asl::SPNumMethod> bc;
bc.push_back(generateBCZeroStress(elasticity, mapX));
bc.push_back(generateBCZeroStressP(elasticity, mapX));
writer.
addVector(
"displacement", *displacement);
writer.
addScalars(
"pressure", *elasticity->getPressureData());
std::cout << "Finished" << endl;
std::cout << "Computing..." << endl;
executeAll(bc);
for (
unsigned int i(0); i < tsim.
v(); ++i)
{
elasticity->execute();
executeAll(bc);
{
cout << i << endl;
}
}
cout << "Finished" << endl;
cout << "Computation statistic:" << endl;
cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
cout <<
"timeBulk=" << timerBulk.
realTime() <<
"; timeBC=" << timerBC.
realTime() << endl;
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 addVector(std::string name, AbstractData &data)
void addScalars(std::string name, AbstractData &data)
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
SPDistanceFunction generateDFInBlock(const Block &b, unsigned int nG)
generates map corresponding to external (ghost) part of the block
SPDistanceFunction normalize(SPDistanceFunction a, double dx)
void initData(Element a, Element initializationValue, const KernelConfiguration &kernelConfig=KERNEL_BASIC)
const VectorTemplate & d3q15()
Vector template.
VectorOfElements generateVEConstantN(unsigned int n, T a)
Generates VectorOfElements with n Elements acl::Constant with values a.
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
void initAll(std::vector< T * > &v)