#include <aslDataInc.h>
#include <acl/aclGenerators.h>
#include <writers/aslVTKFormatWriters.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 <acl/aclMath/aclVectorOfElements.h>
#include <aslGeomInc.h>
#include <acl/aclUtilities.h>
int main(
int argc,
char* argv[])
{
"1.0");
appParamsManager.
load(argc, argv);
Param bulkModulusNum(bulkModulus.
v()/rho.
v()/dx.
v()/dx.
v()*dt.
v()*dt.
v());
Param shearModulusNum(shearModulus.
v()/rho.
v()/dx.
v()/dx.
v()*dt.
v()*dt.
v());
std::cout <<
"Data initialization... " <<
flush;
auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
auto pressureL(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
auto mapX(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
std::cout << "Finished" << endl;
std::cout <<
"Numerics initialization... " <<
flush;
pressureL,
bulkModulusNum.v(),
shearModulusNum.v(),
hydraulicConductivity.
v(),
elasticity->init();
std::vector<asl::SPNumMethod> bc;
writer.addVector("displacement", *displacement);
writer.addScalars("pressure", *elasticity->getPressureData());
writer.addScalars("pressureL", *elasticity->getLiquidPressureData());
std::cout << "Finished" << endl;
std::cout << "Computing..." << endl;
writer.write();
for (
unsigned int i(0); i < tsim.
v(); ++i)
{
elasticity->execute();
{
cout << i << endl;
writer.write();
}
}
std::cout << "Finished" << endl;
cout <<
"time=" << timer.
getTime() <<
"; clockTime=" cout <<
"timeBulk=" << timerBulk.
getTime() <<
"; timeBC=" << timerBC.
getTime() << endl;
std::cout << "Output...";
std::cout << "Finished" << endl;
std::cout << "Ok" << endl;
return 0;
}