Commit 9e3ac656 authored by Gilles MARCKMANN's avatar Gilles MARCKMANN

rename Xfiles/Util/eXlibris_tools in Xfiles/xTools

find_package(EXLIBRISTOOLS) becomes find_package(xTools)
namespace is now  xtools  instead of  eXlibris_tools
parent 61fa3020
......@@ -30,7 +30,7 @@ define_archos_suffixe(ARCHOS)
find_package(EXLIBRISTOOLS REQUIRED)
find_package(xTools REQUIRED)
find_package(XAOMDInterfaceGeneral REQUIRED)
find_package(DISTMESH REQUIRED )
find_package(Trellis REQUIRED )
......@@ -54,7 +54,7 @@ file(GLOB SOURCES src/*)
list(APPEND EXTERNAL_INCLUDES
${EXLIBRISTYPES_INCLUDE_DIR}
${EXLIBRISTOOLS_INCLUDE_DIR}
${xTools_INCLUDE_DIR}
${XAOMDInterfaceGeneral_INCLUDE_DIR}
${DISTMESH_INCLUDE_DIR}
${Trellis_INCLUDE_DIR}
......@@ -91,7 +91,7 @@ list(APPEND EXTERNAL_LIBRARIES
${METIS_LIBRARIES}
${ANN_LIBRARIES}
${DISTMESH_LIBRARIES}
${EXLIBRISTOOLS_LIBRARIES}
${xTools_LIBRARIES}
${MPI_CXX_LIBRARIES}
${CGAL_LIBRARIES}
)
......
......@@ -103,7 +103,7 @@ int main(int argc, char* argv[]) {
vals[0]->setVal(1.*level_set(*it));
}
xEvalField<xtensor::xIdentity<double> > eval_field(field);
xEvalField<xtools::xIdentity<double> > eval_field(field);
xIntegrationRuleBasic integ_rule(1);
xexport::xExportGmshAscii pexport;
Export(eval_field, pexport, "phi_given", integ_rule, all.begin(), all.end());
......
......@@ -93,7 +93,7 @@ void Formulation::transferDispField(double coeff) {
deleteDispField("int_fds");
applyEssentialEnv(coeff);
declareDofs();
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp_field(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp_field(disp_field);
post_pro.exportOnSpace("transfered_disp", Observer::tell<int>("step"), eval_disp_field, geom.getIntegRuleBasic(0), geom.begin(), geom.end());
}
......@@ -196,7 +196,7 @@ void Formulation::assembleStiffnessMatrix(LinearSystem& system, std::string matr
void Formulation::assembleMassMatrix(LinearSystem& system) {
xUniformMaterialSensitivity<double> eval_density("density");
xFormBilinearWithLaw<xValOperator<xtensor::xIdentity<xtensor::xVector>>, xEval<double>, xValOperator<xtensor::xIdentity<xtensor::xVector>>> form_bilinear(eval_density);
xFormBilinearWithLaw<xValOperator<xtools::xIdentity<xtensor::xVector>>, xEval<double>, xValOperator<xtools::xIdentity<xtensor::xVector>>> form_bilinear(eval_density);
Assemble(form_bilinear, system.getAssemblerLumpedEqu(), geom.getIntegRuleSmart(), disp_field, disp_field, geom.begin(), geom.end());
}
......@@ -220,16 +220,16 @@ void Formulation::assembleNaturalEnv(LinearSystem& system) {
else if(phys[9]=='Y') { val(1)=env.getValue(); }
else if(phys[9]=='Z') { val(2)=env.getValue(); }
xEvalConstant<xtensor::xVector> flux(val);
xFormLinearWithLoad<xValOperator<xtensor::xIdentity<xtensor::xVector> >, xEvalConstant<xtensor::xVector> > lin(flux);
xFormLinearWithLoad<xValOperator<xtools::xIdentity<xtensor::xVector> >, xEvalConstant<xtensor::xVector> > lin(flux);
xClassRegion bc(&mesh, env.Entity, env.getDimension());
Assemble(lin, system.getAssembler(), geom.getIntegRuleBasic(bc_integ_order), disp_field, bc.begin(), bc.end(), xUpperAdjacency());
}
else if(phys=="PRESSURE") {
assert(env.Type==FIX || env.Type==FIX_AND_MEASURE);
xEvalNormal eval_normal;
xtensor::xScale<xtensor::xVector> scale(env.getValue());
xEvalUnary<xtensor::xScale<xtensor::xVector> > eval_pressure(scale, eval_normal);
xFormLinearWithLoad<xValOperator<xtensor::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_pressure);
xtools::xScale<xtensor::xVector> scale(env.getValue());
xEvalUnary<xtools::xScale<xtensor::xVector> > eval_pressure(scale, eval_normal);
xFormLinearWithLoad<xValOperator<xtools::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_pressure);
xClassRegion bc(&mesh, env.Entity, env.getDimension());
Assemble(lin, system.getAssembler(), geom.getIntegRuleBasic(bc_integ_order), disp_field, bc.begin(), bc.end(), xUpperAdjacency());
}
......@@ -244,8 +244,8 @@ void Formulation::assembleNaturalEnv(LinearSystem& system) {
else if(phys[7]=='Z' && phys[8]=='Z') { val(2,2)=env.getValue(); }
xEvalNormal eval_normal;
xEvalConstant<xtensor::xTensor2> eval_stress(val);
xEvalBinary<xtensor::xMult<xtensor::xTensor2, xtensor::xVector, xtensor::xVector> > eval_traction(eval_stress, eval_normal);
xFormLinearWithLoad<xValOperator<xtensor::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_traction);
xEvalBinary<xtools::xMult<xtensor::xTensor2, xtensor::xVector, xtensor::xVector> > eval_traction(eval_stress, eval_normal);
xFormLinearWithLoad<xValOperator<xtools::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_traction);
xClassRegion bc(&mesh, env.Entity, env.getDimension());
Assemble(lin, system.getAssembler(), geom.getIntegRuleBasic(bc_integ_order), disp_field, bc.begin(), bc.end(), xUpperAdjacency());
}
......@@ -309,7 +309,7 @@ void Formulation::exportStep(int step) {
}
CustomValueDoubleSelector::which_val=size_disp_value;
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_field);
post_pro.exportOnSpace("disp", step, eval_disp, integ_rule, begin, end);
post_pro.exportOnSpace("disp_basic", step, eval_disp, geom.getIntegRuleBasic(0), begin, end);
post_pro.exportOnTime("disp", step, eval_disp);
......
......@@ -399,9 +399,9 @@ xtensor::xVector QSFormulation::computeRefDisp() {
xClassRegion bc(&mesh, env.Entity, env.getDimension());
xtensor::xVector vec;
vec(i)=1.;
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalConstant<xtensor::xVector> eval_dir(vec);
xEvalBinary<xtensor::xMult<xtensor::xVector, xtensor::xVector, double> > eval(eval_disp, eval_dir);
xEvalBinary<xtools::xMult<xtensor::xVector, xtensor::xVector, double> > eval(eval_disp, eval_dir);
xIntegrateEvalCommand<xEval<double> > command(eval, ref_disp(i));
ApplyCommandOnIntegrationRule(command, geom.getIntegRuleBasic(), bc.begin(), bc.end());
}
......@@ -438,7 +438,7 @@ bool QSFormulation::exportStep(int step) {
SmoothApproNonUniformMaterialSensitivity_c<xtensor::xTensor2> eval(str, variab_manager);
post_pro.exportOnSpace(str, step, eval, geom.getIntegRuleSmart(), begin, end);
}
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_field);
post_pro.exportOnSpace("disp_ref", step, eval_disp, integ_rule, begin, end);
post_pro.exportOnSpace("disp_ref_basic", step, eval_disp, geom.getIntegRuleBasic(0), begin, end);
......@@ -507,7 +507,7 @@ void QSFormulation::saveStep(int step) {
void QSFormulation::restoreStep(PreProcessing& pre_pro) {
pre_pro.loadField("disp", geom.getMesh(), disp_field);
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_field);
post_pro.exportOnSpace("restored_disp_basic", pre_pro.getStep(), eval_disp, geom.getIntegRuleBasic(0), geom.begin(), geom.end());
tls_solver.swapOldAndCurrentLevelSetField();
updateMaterialVariables(tls_solver.getDamageEval());
......
......@@ -498,9 +498,9 @@ void QSFormulRemeshAniso::remesh() {
//xMesh* meshForRemeshing=&geom.getMesh();
//Misc evaluators
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_field);
xEvalGradField<xtensor::xSymmetrize> eval_strain(disp_field);
xEvalLevelSet<xtensor::xIdentity<double> > eval_lsetAdapt(lsetAdapt);
xEvalLevelSet<xtools::xIdentity<double> > eval_lsetAdapt(lsetAdapt);
//Adapters for the evaluators that are defined on geom.getMesh, but exported on meshForRemeshing (backupMesh)
xEvalOnOtherMesh<double> eval_phi_on_backupMesh(tls_solver.getPhiEval(),geom.getMesh() );
......@@ -613,7 +613,7 @@ void QSFormulRemeshAniso::remesh() {
xReadFromParaview(entree,"deplacement",disp_field,*mesh);
disp_field.getDoubleManager()->PrintForDebug("aft_read_disp.dbg");
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp1(disp_field);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp1(disp_field);
//xEvalConstant<double> eval_disp_(1.);
post_pro.exportOnSpace("read_disp", Observer::tell<int>("step"), eval_disp1, geom.getIntegRuleSmart(), geom.begin(), geom.end());
......@@ -622,7 +622,7 @@ void QSFormulRemeshAniso::remesh() {
// xexport::xPostProVTU postProVTU2(mesh);
// postProVTU2.openFile("DispRead.vtu");
// xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp2(disp_field);
// xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp2(disp_field);
// postProVTU2.exportVectorAtNode(eval_disp2,"deplacement");
// postProVTU2.closeFile();
......@@ -751,7 +751,7 @@ void QSFormulRemeshAniso::remesh() {
std::list<AOMD::mEntity*> QSFormulRemeshAniso::constructDelocalizedList(xLevelSet &lsetAdapt) {
std::list<AOMD::mEntity*> delocalized_list;
xEvalLevelSet<xtensor::xIdentity<double> > eval_chi(lsetAdapt);
xEvalLevelSet<xtools::xIdentity<double> > eval_chi(lsetAdapt);
post_pro.exportOnSpace("lsAdapt_computed_eval",Observer::tell<int>("step"),eval_chi,geom.getIntegRuleBasic(0), geom.begin("tls"), geom.end("tls"));
LocateHotPointsCommand locate_hot_points(eval_chi, 0., delocalized_list);
ApplyCommandOnIntegrationRule(locate_hot_points, geom.getIntegRuleBasic(0), geom.begin("tls"), geom.end("tls"));
......
......@@ -42,15 +42,15 @@ public:
void QSFormulationSuperimposed::assembleNaturalEnv(LinearSystem& system) {
NonUniformMaterialSensitivity_c<xtensor::xTensor4> eval_stiffness("secant_matrix", variab_manager);
xEvalBinary<xtensor::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2>> eval_stress(eval_stiffness, eval_strain_superimposed);
xEvalBinary<xtools::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2>> eval_stress(eval_stiffness, eval_strain_superimposed);
xFormLinearWithLoad<xGradOperator<xtensor::xSymmetrize>, xEval<xtensor::xTensor2> > form_linear(eval_stress);
xFilteredRegion<xIter, xEntityFilter> superimposed(geom.begin(), geom.end(), xAcceptOnZoneID(101));
system.setAssemblerCoeff(-1.);
Assemble(form_linear, system.getAssembler(), geom.getIntegRuleSmart(), disp_field, superimposed.begin(), superimposed.end());
system.setAssemblerCoeff(1.);
MyNormal eval_normal;
xEvalBinary<xtensor::xMult<xtensor::xTensor2, xtensor::xVector, xtensor::xVector> > eval_traction(eval_stress_superimposed, eval_normal);
xFormLinearWithLoad<xValOperator<xtensor::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_traction);
xEvalBinary<xtools::xMult<xtensor::xTensor2, xtensor::xVector, xtensor::xVector> > eval_traction(eval_stress_superimposed, eval_normal);
xFormLinearWithLoad<xValOperator<xtools::xIdentity<xtensor::xVector> >, xEval<xtensor::xVector> > lin(eval_traction);
xClassRegion bc(&geom.getMesh(), 12, 1);
Assemble(lin, system.getAssembler(), geom.getIntegRuleBasic(bc_integ_order), disp_field, bc.begin(), bc.end(), xUpperAdjacency());
}
......
......@@ -119,7 +119,7 @@ PreProcessing::PreProcessing(std::string archive_filename) :
// tar file in future may/will be dispatched or not
// ideal : archive dispatched , read in // , following load balancing information restart information are dispatched on new set of proc
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
if(system(NULL)==0) {
......
......@@ -196,7 +196,7 @@ TLSGeom::TLSGeom(xData& data,
std::list<mEntity*> nonlocal_list;
if(pre_pro.doRestart()) {
// must be called only with one proc for now (tar split or not .... see import.cc)
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
// data.ReadMesh();
// comp_mesh=data.mesh;// TODO stored mesh as node position perturbed w.r.t. original mesh
comp_mesh=new xMesh(world);
......@@ -718,7 +718,7 @@ void TLSGeom::buildUnconnectedParts() {
// in // this have to be completely revisited to assume connection in between process.
// => parallel bosst graph library may be a quick simple solution
// => otherwise each proc start a group and before doing a new one communication check if it continue in another proc and put them in relation
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
for(auto it=mesh.begin(dim); it!=mesh.end(dim); ++it) {
auto e=*it;
......@@ -835,7 +835,7 @@ int TLSGeom::getNbUnconnectedParts() const {
bool TLSGeom::isDelocalized() const {
// PARA : size must be global across all proc
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
return getRegion("nonlocal").size()>0;
}
......
......@@ -72,7 +72,7 @@ TLSSolver::TLSSolver(TLSGeom& geom, const xParseData& parse_data,
declareState();
if(pre_pro.doRestart()) {
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
restoreStep(pre_pro);
}
......@@ -275,7 +275,7 @@ void TLSSolver::delocalizeLevelSetFieldForced(double delta_phi_max) {
}
}
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
if(n_max==NULL) {
return;
......@@ -300,7 +300,7 @@ void TLSSolver::delocalizeLevelSetField() {
geom.updateDomains(delocalized_list);
delocalized_list.clear();
// PARA: must be communicate to all proc
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
is_newly_delocalized=true;
}
geom.computeNonlocalBoundingBox();
......@@ -351,7 +351,7 @@ void TLSSolver::delocalizeMeanField() {
// coeffs have to be created with // Fast Marching and is expected to contains all column related to local (proc sens) non local nodes (internal and boundary)
// Line of coeffs like in sequential are suppose to contain all boundary non local nodes.
// see comment for matrix vector product in TLSAlgorithm
assert(eXlibris_tools::workInProgress());
assert(xtools::workInProgress());
auto local=geom.getRegion("local");
auto nonlocal=geom.getRegion("nonlocal");
......
......@@ -108,7 +108,7 @@ private:
lalg::xGraphMatrix* nonlocality_graph;
lalg::Matrix* nonlocality_matrix;
xfem::xEvalField<xtensor::xIdentity<double> > eval_phi;
xfem::xEvalField<xtools::xIdentity<double> > eval_phi;
xtls::xEvalTLSAdimLSFromEval eval_phi_over_lc;
xtls::xEvalTLSDamageFunction eval_d;
xfem::xEvalConstant<double> eval_lc;
......
......@@ -9,7 +9,7 @@
int main(int argc, char* argv[]) {
eXlibris_tools::xMPIEnv::init(argc,argv);
xtools::xMPIEnv::init(argc,argv);
RegisterMaterials();
......@@ -33,5 +33,5 @@ int main(int argc, char* argv[]) {
// wait every destruction done
MPI_Barrier(MPI_COMM_WORLD);
return eXlibris_tools::xMPIEnv::finalize();
return xtools::xMPIEnv::finalize();
}
......@@ -9,7 +9,7 @@
int main(int argc, char* argv[]) {
eXlibris_tools::xMPIEnv::init(argc,argv);
xtools::xMPIEnv::init(argc,argv);
RegisterMaterials();
......@@ -34,5 +34,5 @@ int main(int argc, char* argv[]) {
// wait every destruction done
MPI_Barrier(MPI_COMM_WORLD);
return eXlibris_tools::xMPIEnv::finalize();
return xtools::xMPIEnv::finalize();
}
......@@ -9,7 +9,7 @@
int main(int argc, char* argv[]) {
eXlibris_tools::xMPIEnv::init(argc,argv);
xtools::xMPIEnv::init(argc,argv);
RegisterMaterials();
......@@ -33,5 +33,5 @@ int main(int argc, char* argv[]) {
// wait every destruction done
MPI_Barrier(MPI_COMM_WORLD);
return eXlibris_tools::xMPIEnv::finalize();
return xtools::xMPIEnv::finalize();
}
......@@ -9,7 +9,7 @@
int main(int argc, char* argv[]) {
eXlibris_tools::xMPIEnv::init(argc,argv);
xtools::xMPIEnv::init(argc,argv);
RegisterMaterials();
......@@ -34,5 +34,5 @@ int main(int argc, char* argv[]) {
// wait every destruction done
MPI_Barrier(MPI_COMM_WORLD);
return eXlibris_tools::xMPIEnv::finalize();
return xtools::xMPIEnv::finalize();
}
......@@ -35,7 +35,7 @@ int main(int argc, char* argv[]) {
xfem::xElastic::SetElasticStiffnessIsotropicPlate(E, nu, stiffness);
xfem::xEvalConstant<xtensor::xTensor4> eval_stiffness(stiffness);
xfem::xEvalConstant<xtensor::xTensor2> eval_strain(parse_data.getTensor2("superimposed_strain"));
xfem::xEvalBinary<xtensor::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2>> eval_stress(eval_stiffness, eval_strain);
xfem::xEvalBinary<xtools::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2>> eval_stress(eval_stiffness, eval_strain);
TLSSolver tls_solver(tls_geom, parse_data, pre_pro, post_pro);
QSFormulationSuperimposed formulation(tls_geom, tls_solver, data, parse_data, pre_pro, post_pro, eval_strain, eval_stress);
......
......@@ -160,9 +160,9 @@ void Mechanics_c :: TreatmentOfFormulation (xData *data) {
vars_nat, data->mesh, xUpperAdjacency());
xUniformMaterialSensitivity<xtensor::xTensor4> hooke("strain");
xFormBilinearWithLaw<xGradOperator<xtensor::xIdentity<xtensor::xTensor2> >,
xFormBilinearWithLaw<xGradOperator<xtools::xIdentity<xtensor::xTensor2> >,
xUniformMaterialSensitivity<xtensor::xTensor4>,
xGradOperator<xtensor::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
xGradOperator<xtools::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), all.end());
cout << "End Building the Linear System" << endl;
......@@ -198,11 +198,11 @@ Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), al
xexport::xExportGmshAsciiSort pexport;
xexport::xExportGmshBinary pbinexport;
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_l);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_l);
Export(eval_disp, pexport, "DISPLACEMENT", integration_rule, all.begin(), all.end());
xEvalGradField<xtensor::xSymmetrize> eval_strain(disp_l);
xEvalBinary< xtensor::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
xEvalBinary< xtools::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
Export(stress, pbinexport, "STRESS", integration_rule, all.begin(), all.end());
cout << "End Post Treatment" << endl;
......
......@@ -160,9 +160,9 @@ void Mechanics_c :: TreatmentOfFormulation (xData *data) {
vars_nat, data->mesh, xUpperAdjacency());
xUniformMaterialSensitivity<xtensor::xTensor4> hooke("strain");
xFormBilinearWithLaw<xGradOperator<xtensor::xIdentity<xtensor::xTensor2> >,
xFormBilinearWithLaw<xGradOperator<xtools::xIdentity<xtensor::xTensor2> >,
xUniformMaterialSensitivity<xtensor::xTensor4>,
xGradOperator<xtensor::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
xGradOperator<xtools::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), all.end());
cout << "End Building the Linear System" << endl;
......@@ -198,11 +198,11 @@ Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), al
xexport::xExportGmshAsciiSort pexport;
xexport::xExportGmshBinary pbinexport;
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_l);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_l);
Export(eval_disp, pexport, "DISPLACEMENT", integration_rule, all.begin(), all.end());
xEvalGradField<xtensor::xSymmetrize> eval_strain(disp_l);
xEvalBinary< xtensor::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
xEvalBinary< xtools::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
Export(stress, pbinexport, "STRESS", integration_rule, all.begin(), all.end());
cout << "End Post Treatment" << endl;
......
......@@ -160,9 +160,9 @@ void Mechanics_c :: TreatmentOfFormulation (xData *data) {
vars_nat, data->mesh, xUpperAdjacency());
xUniformMaterialSensitivity<xtensor::xTensor4> hooke("strain");
xFormBilinearWithLaw<xGradOperator<xtensor::xIdentity<xtensor::xTensor2> >,
xFormBilinearWithLaw<xGradOperator<xtools::xIdentity<xtensor::xTensor2> >,
xUniformMaterialSensitivity<xtensor::xTensor4>,
xGradOperator<xtensor::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
xGradOperator<xtools::xIdentity<xtensor::xTensor2> > > diffusive(hooke);
Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), all.end());
cout << "End Building the Linear System" << endl;
......@@ -198,11 +198,11 @@ Assemble(diffusive, assembler, integration_rule, disp_l, disp_l, all.begin(), al
xexport::xExportGmshAsciiSort pexport;
xexport::xExportGmshBinary pbinexport;
xEvalField<xtensor::xIdentity<xtensor::xVector> > eval_disp(disp_l);
xEvalField<xtools::xIdentity<xtensor::xVector> > eval_disp(disp_l);
Export(eval_disp, pexport, "DISPLACEMENT", integration_rule, all.begin(), all.end());
xEvalGradField<xtensor::xSymmetrize> eval_strain(disp_l);
xEvalBinary< xtensor::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
xEvalBinary< xtools::xMult<xtensor::xTensor4, xtensor::xTensor2, xtensor::xTensor2> > stress(hooke, eval_strain);
Export(stress, pbinexport, "STRESS", integration_rule, all.begin(), all.end());
cout << "End Post Treatment" << endl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment