Skip to content
Snippets Groups Projects

Hyperelastic Lagrangian solver (Eucclhyd or Glace-type).

2 files
+ 51
0
Compare changes
  • Side-by-side
  • Inline

Files

@@ -370,6 +370,56 @@ SchemeModule::SchemeModule()
));
this->_addBuiltinFunction("hyperelastic_eucclhyd_solver",
std::function(
[](const std::shared_ptr<const IDiscreteFunction>& rho,
const std::shared_ptr<const IDiscreteFunction>& u,
const std::shared_ptr<const IDiscreteFunction>& E,
const std::shared_ptr<const IDiscreteFunction>& CG,
const std::shared_ptr<const IDiscreteFunction>& aL,
const std::shared_ptr<const IDiscreteFunction>& aT,
const std::shared_ptr<const IDiscreteFunction>& sigma,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list,
const double& dt)
-> std::tuple<std::shared_ptr<const IMesh>, std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>> {
return HyperelasticSolverHandler{getCommonMesh({rho, u, E, CG, aL, aT, sigma})}
.solver()
.apply(HyperelasticSolverHandler::SolverType::Eucclhyd, dt, rho, u, E, CG, aL, aT,
sigma, bc_descriptor_list);
}
));
this->_addBuiltinFunction("hyperelastic_glace_solver",
std::function(
[](const std::shared_ptr<const IDiscreteFunction>& rho,
const std::shared_ptr<const IDiscreteFunction>& u,
const std::shared_ptr<const IDiscreteFunction>& E,
const std::shared_ptr<const IDiscreteFunction>& CG,
const std::shared_ptr<const IDiscreteFunction>& aL,
const std::shared_ptr<const IDiscreteFunction>& aT,
const std::shared_ptr<const IDiscreteFunction>& sigma,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list,
const double& dt)
-> std::tuple<std::shared_ptr<const IMesh>, std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>,
std::shared_ptr<const IDiscreteFunction>> {
return HyperelasticSolverHandler{getCommonMesh({rho, u, E, CG, aL, aT, sigma})}
.solver()
.apply(HyperelasticSolverHandler::SolverType::Glace, dt, rho, u, E, CG, aL, aT, sigma,
bc_descriptor_list);
}
));
this->_addBuiltinFunction("apply_acoustic_fluxes",
std::function(
Loading