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[])
61 appParamsManager.
load(argc, argv);
63 Param bulkModulusNum(bulkModulus.
v()/rho.
v()/dx.
v()/dx.
v()*dt.
v());
64 Param shearModulusNum(shearModulus.
v()/rho.
v()/dx.
v()/dx.
v()*dt.
v());
68 std::cout <<
"Data initialization... " <<
flush;
71 auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
76 auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
81 std::cout <<
"Finished" << endl;
83 std::cout <<
"Numerics initialization... " <<
flush;
92 std::vector<asl::SPNumMethod> bc;
100 writer.addVector(
"displacement", *displacement);
101 writer.addScalars(
"pressure", *elasticity->getPressureData());
103 std::cout <<
"Finished" << endl;
104 std::cout <<
"Computing..." << endl;
113 for (
unsigned int i(0); i < tsim.
v(); ++i)
116 elasticity->execute();
129 std::cout <<
"Finished" << endl;
131 cout <<
"time=" << timer.
getTime() <<
"; clockTime=" 134 cout <<
"timeBulk=" << timerBulk.
getTime() <<
135 "; timeBC=" << timerBC.
getTime() << endl;
137 std::cout <<
"Output...";
138 std::cout <<
"Finished" << endl;
139 std::cout <<
"Ok" << endl;
const double getTime() const
const double getProcessorLoad() const
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
const double getClockTime() const
SPDistanceFunction normalize(SPDistanceFunction a, double dx)
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
void initAll(std::vector< T * > &v)
int main(int argc, char *argv[])
const VectorTemplate & d3q15()
Vector template.
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
SPFDElasticityIncompressibleStatic generateFDElasticityStatic(SPDataWithGhostNodesACLData d, double bM, double sM, const VectorTemplate *vT)
void executeAll(std::vector< T * > &v)
void addScalars(std::string name, AbstractData &data)
std::shared_ptr< T > map(ElementData m)
SPNumMethod generateBCZeroStressP(SPFDElasticityIncompressibleStatic nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
void initData(VectorOfElements a, VectorOfElements initializationValue, const KernelConfiguration &kernelConfig)
VectorOfElements generateVEConstantN(unsigned int n, T a)
Generates VectorOfElements with n Elements acl::Constant with values a.
void load(int argc, char *argv[])
void initData(Element a, Element initializationValue, const KernelConfiguration &kernelConfig=KERNEL_BASIC)
SPDistanceFunction generateDFInBlock(const Block &b, unsigned int nG)
generates map corresponding to external (ghost) part of the block