#include <aslDataInc.h>
#include <acl/aclGenerators.h>
#include <num/aslFDPoroElasticity.h>
#include <num/aslFDElasticityBC.h>
#include <num/aslFDPoroElasticityBC.h>
#include <utilities/aslTimer.h>
#include <utilities/aslParametersManager.h>
#include <math/aslTemplates.h>
#include <aslGeomInc.h>
#include <math/aslDistanceFunction.h>
#include <acl/aclMath/aclVectorOfElements.h>
#include <acl/aclUtilities.h>
#include <math/aslIndex2Position.h>
#include <readers/aslVTKFormatReaders.h>
#include <writers/aslVTKFormatWriters.h>
int main(
int argc,
char* argv[])
{
appParamsManager.
load(argc, argv);
std::cout <<
"Data initialization... " <<
flush;
Param bulkModulusNum(bulkModulus.
v()/rho.
v()/
dx.v()/
dx.v());
Param shearModulusNum(shearModulus.
v()/rho.
v()/
dx.v()/
dx.v());
Param hydraulicConductivityNum(hydraulicConductivity.
v()/
dx.v()/
dx.v()/
dx.v());
cout << gNum <<
"; " << bulkModulusNum.
v() <<
"; " << hydraulicConductivityNum.
v() << endl;
auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
auto pressure(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
writer.
addVector(
"displacement", *displacement);
std::cout << "Finished" << endl;
std::cout <<
"Numerics initialization... " <<
flush;
auto elasticity(make_shared<asl::FDPoroElasticity>(displacement,
pressure,
displacement->getBlock().dx +
displacement->getBlock().position);
elasticity->setForce(forceField->getSubContainer());
elasticity->init();
vector<asl::SPNumMethod> bcl;
std::cout << "Finished" << endl;
std::cout <<
"Computing..." <<
flush;
for (
unsigned int i(0); i < tsim.
v(); ++i)
{
elasticity->execute();
}
cout << "Finished" << endl;
cout << "Computation statistic:" << endl;
cout <<
"Real Time = " << timer.
realTime() <<
"; Processor Time = "
return 0;
}