28 #include <aslDataInc.h>
29 #include <acl/aclGenerators.h>
30 #include <writers/aslVTKFormatWriters.h>
31 #include <num/aslFDElasticity.h>
32 #include <num/aslFDElasticityBC.h>
33 #include <utilities/aslTimer.h>
34 #include <utilities/aslParametersManager.h>
35 #include <math/aslTemplates.h>
36 #include <acl/aclMath/aclVectorOfElements.h>
37 #include <aslGeomInc.h>
38 #include <acl/aclUtilities.h>
46 int main(
int argc,
char* argv[])
60 appParamsManager.
load(argc, argv);
62 Param bulkModulusNum(bulkModulus.
v()/rho.
v()/
dx.v()/
dx.v());
63 Param shearModulusNum(shearModulus.
v()/rho.
v()/
dx.v()/
dx.v());
67 std::cout <<
"Data initialization... " <<
flush;
70 auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
75 auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
76 initData(mapX->getEContainer(),
map->getEContainer());
81 writer.
addVector(
"displacement", *displacement);
84 std::cout <<
"Finished" << endl;
86 std::cout <<
"Numerics initialization... " <<
flush;
101 bcFreeSurface->init();
104 std::cout <<
"Finished" << endl;
105 std::cout <<
"Computing..." << endl;
108 bcFreeSurface->execute();
109 bcRigidWall->execute();
113 for (
unsigned int i(0); i < tsim.
v(); ++i)
115 elasticity->execute();
116 bcFreeSurface->execute();
117 bcRigidWall->execute();
126 cout <<
"Finished" << endl;
128 cout <<
"Computation statistic:" << endl;
129 cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
void initData(VectorOfElements a, VectorOfElements initializationValue, const KernelConfiguration &kernelConfig)
void load(int argc, char *argv[])
Numerical method which computes homogenious isotropic elasticity equation.
const double realTime() const
const double processorTime() const
const double processorLoad() const
void addVector(std::string name, AbstractData &data)
void addScalars(std::string name, AbstractData &data)
int main(int argc, char *argv[])
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
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.
std::shared_ptr< T > map(ElementData m)
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
std::shared_ptr< FDElasticity2 > SPFDElasticity2