47 int main(
int argc,
char* argv[])
63 appParamsManager.
load(argc, argv);
65 Param bulkModulusNum(bulkModulus.
v()/rho.
v()/
dx.v()/
dx.v()*dt.
v()*dt.
v());
66 Param shearModulusNum(shearModulus.
v()/rho.
v()/
dx.v()/
dx.v()*dt.
v()*dt.
v());
70 std::cout <<
"Data initialization... " <<
flush;
73 auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
75 auto pressureL(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
80 auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
83 std::cout <<
"Finished" << endl;
85 std::cout <<
"Numerics initialization... " <<
flush;
91 hydraulicConductivity.
v(),
96 std::vector<asl::SPNumMethod> bc;
103 writer.addVector(
"displacement", *displacement);
104 writer.addScalars(
"pressure", *elasticity->getPressureData());
105 writer.addScalars(
"pressureL", *elasticity->getLiquidPressureData());
107 std::cout <<
"Finished" << endl;
108 std::cout <<
"Computing..." << endl;
117 for (
unsigned int i(0); i < tsim.
v(); ++i)
120 elasticity->execute();
133 cout <<
"Finished" << endl;
135 cout <<
"Computation statistic:" << endl;
136 cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = " 140 cout <<
"timeBulk=" << timerBulk.
realTime() <<
141 "; timeBC=" << timerBC.
realTime() << endl;
const double realTime() const
const double processorTime() const
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
SPDistanceFunction normalize(SPDistanceFunction a, double dx)
int main(int argc, char *argv[])
void initAll(std::vector< T * > &v)
const VectorTemplate & d3q15()
Vector template.
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
void initData(SPAbstractData d, double a)
void executeAll(std::vector< T * > &v)
void addScalars(std::string name, AbstractData &data)
void addBCRigidWall(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, const std::vector< SlicesNames > &sl)
std::shared_ptr< T > map(ElementData m)
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d, SPDataWithGhostNodesACLData pl, double bM, double sM, double k, const VectorTemplate *vT)
void addBCZeroStress(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to pressure.
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
void initData(VectorOfElements a, VectorOfElements initializationValue, const KernelConfiguration &kernelConfig)
void load(int argc, char *argv[])
const double processorLoad() const
SPDistanceFunction generateDFInBlock(const Block &b, unsigned int nG)
generates map corresponding to external (ghost) part of the block