29 #include <aslDataInc.h> 30 #include <acl/aclGenerators.h> 31 #include <num/aslFDPoroElasticity.h> 32 #include <num/aslFDElasticityBC.h> 33 #include <num/aslFDPoroElasticityBC.h> 34 #include <utilities/aslTimer.h> 35 #include <utilities/aslParametersManager.h> 36 #include <math/aslTemplates.h> 37 #include <aslGeomInc.h> 38 #include <math/aslDistanceFunction.h> 39 #include <acl/aclMath/aclVectorOfElements.h> 40 #include <acl/aclUtilities.h> 41 #include <math/aslIndex2Position.h> 42 #include <readers/aslVTKFormatReaders.h> 43 #include <writers/aslVTKFormatWriters.h> 51 int main(
int argc,
char* argv[])
66 appParamsManager.
load(argc, argv);
68 std::cout <<
"Data initialization... " <<
flush;
73 dx.
v() = block.dx*1e-3;
76 Param bulkModulusNum(bulkModulus.
v()/rho.
v()/dx.
v()/dx.
v());
77 Param shearModulusNum(shearModulus.
v()/rho.
v()/dx.
v()/dx.
v());
79 Param hydraulicConductivityNum(hydraulicConductivity.
v()/dx.
v()/dx.
v()/dx.
v());
81 cout << gNum <<
"; " << bulkModulusNum.
v() <<
"; " << hydraulicConductivityNum.v() << endl;
84 auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
85 auto pressure(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
91 auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
96 writer.
addVector(
"displacement", *displacement);
97 writer.addScalars(
"pressure", *pressure);
98 writer.addScalars(
"map", *mapX);
101 std::cout <<
"Finished" << endl;
103 std::cout <<
"Numerics initialization... " <<
flush;
105 auto elasticity(make_shared<asl::FDPoroElasticity>(displacement,
114 displacement->getBlock().dx +
115 displacement->getBlock().position);
122 elasticity->setForce(forceField->getSubContainer());
125 vector<asl::SPNumMethod> bcl;
133 std::cout <<
"Finished" << endl;
134 std::cout <<
"Computing..." <<
flush;
142 for (
unsigned int i(0); i < tsim.
v(); ++i)
144 elasticity->execute();
151 std::cout <<
"Finished" << endl;
153 cout <<
"time: " << timer.
getTime() <<
"; clockTime: " 157 std::cout <<
"Output...";
158 std::cout <<
"Finished" << endl;
159 std::cout <<
"Ok" << endl;
const double getTime() const
SPDataWithGhostNodesACLData read(const string &fileName, unsigned int arrayNum, acl::CommandQueue queue=acl::hardware.defaultQueue)
const double getProcessorLoad() const
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
const double getClockTime() const
void addVector(std::string name, AbstractData &data)
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
void initAll(std::vector< T * > &v)
SPDistanceFunction generateDFPlane(const AVec< double > &n, const AVec< double > &p0)
const VectorTemplate & d3q15()
Vector template.
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
void executeAll(std::vector< T * > &v)
void addBCRigidWall(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, const std::vector< SlicesNames > &sl)
int main(int argc, char *argv[])
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
acl::VectorOfElements positionWithInit
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)
const KernelConfiguration KERNEL_BASIC