#include <aslDataInc.h>
#include <acl/aclGenerators.h>
#include <writers/aslVTKFormatWriters.h>
#include <num/aslFDElasticity.h>
#include <num/aslFDElasticityBC.h>
#include <num/aslBasicBC.h>
#include <utilities/aslTimer.h>
#include <utilities/aslParametersManager.h>
#include <math/aslTemplates.h>
#include <aslGeomInc.h>
{
private:
void init();
public:
void load(
int argc,
char * argv[]);
};
rho(7800,
"rho",
"density"),
tubeL(.2,
"tube_length",
"pipe length" "m"),
tubeDEx(0.021,
"tube_diameter_external",
"external pipe diameter" "m"),
tubeDIn(0.0107,
"tube_diameter_internal",
"internal pipe diameter" "m"),
hole1Pos(0.1,
"hole_1_position",
"position of first hole" "m"),
hole2Pos(0.15,
"hole_2_position",
"position of second hole" "m"),
hole1D(15e-3,
"hole_1_diameter",
"diameter of first hole" "m"),
hole2D(15e-3,
"hole_2_diameter",
"diameter of second hole" "m"),
tSimulation(8e-5,
"simulation_time",
"simulation time"),
tOutput(1e-6,
"output_interval",
"output interval")
{
}
{
init();
}
{
cout << vs <<
"; " <<
dx.
v() <<
"; " <<
dt.
v() << endl;
}
void Parameters::init()
{
}
{
h1Orientation*wallMid);
h2Orientation*wallMid);
pipeGeometry = pipeGeometry &
pipeGeometry = pipeGeometry &
}
{
float a(it<200. ? 1.-
cos(it*6.28/200.) : 0);
}
int main(
int argc,
char* argv[])
{
std::cout <<
"Data initialization... " <<
flush;
auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
auto mapMem(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
writer.addVector("displacement", *displacement);
writer.write();
std::cout << "Finished" << endl;
std::cout <<
"Numerics initialization... " <<
flush;
elasticity->init();
std::vector<asl::SPNumMethod> bc;
std::cout << "Finished" << endl;
std::cout << "Computing..." << endl;
double tOutPrev(0);
cout << params.
dt.
v() << endl;
{
elasticity->execute();
{
tOutPrev=t;
cout << t <<
"/" << params.
tSimulation.
v() <<
"; expected left time: " <<
writer.write();
}
}
std::cout << "Finished" << endl;
cout <<
"time=" << timer.
getTime() <<
"; clockTime=" std::cout << "Output...";
std::cout << "Finished" << endl;
std::cout << "Ok" << endl;
return 0;
}