Skip to content
Snippets Groups Projects
Commit 8be00899 authored by Alexandre Gangloff's avatar Alexandre Gangloff
Browse files

Add a function for fixed time-step ratio in the second-order partitionned method

parent dd8e04a2
No related branches found
No related tags found
No related merge requests found
......@@ -440,6 +440,63 @@ LocalFSIModule::LocalFSIModule()
));
this->_addBuiltinFunction("local_dt_hyperelastic_eucclhyd_neohook_solver_order2",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& CG1,
const std::shared_ptr<const DiscreteFunctionVariant>& aL1,
const std::shared_ptr<const DiscreteFunctionVariant>& aT1,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma1,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& CG2,
const std::shared_ptr<const DiscreteFunctionVariant>& aL2,
const std::shared_ptr<const DiscreteFunctionVariant>& aT2,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list2,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda1,
const std::shared_ptr<const DiscreteFunctionVariant>& mu1,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda2,
const std::shared_ptr<const DiscreteFunctionVariant>& mu2,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma1,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf1,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf2,
const double& dt1,
const size_t& q)
-> std::tuple<
std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>> {
return Order2LocalDtHyperelasticSolverHandler{getCommonMesh(
{rho1, u1, E1, CG1, aL1, aT1, sigma1}),
getCommonMesh(
{rho2, u2, E2, CG2, aL2, aT2, sigma2})}
.solver()
.apply(Order2LocalDtHyperelasticSolverHandler::SolverType::Eucclhyd, 1, dt1, q, rho1, rho2, u1,
u2, E1, E2, CG1, CG2, aL1, aL2, aT1, aT2, sigma1, sigma2, p1, p2, bc_descriptor_list1,
bc_descriptor_list2, lambda1, mu1, lambda2, mu2, gamma1, p_inf1, gamma2, p_inf2);
}
));
this->_addBuiltinFunction("local_dt_hyperelastic_eucclhyd_neohook2_solver_order2",
std::function(
......@@ -493,6 +550,62 @@ LocalFSIModule::LocalFSIModule()
));
this->_addBuiltinFunction("local_dt_hyperelastic_eucclhyd_neohook2_solver_order2",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& CG1,
const std::shared_ptr<const DiscreteFunctionVariant>& aL1,
const std::shared_ptr<const DiscreteFunctionVariant>& aT1,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma1,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& CG2,
const std::shared_ptr<const DiscreteFunctionVariant>& aL2,
const std::shared_ptr<const DiscreteFunctionVariant>& aT2,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list2,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda1,
const std::shared_ptr<const DiscreteFunctionVariant>& mu1,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda2,
const std::shared_ptr<const DiscreteFunctionVariant>& mu2,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma1,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf1,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf2,
const double& dt1,
const size_t& q)
-> std::tuple<
std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>> {
return Order2LocalDtHyperelasticSolverHandler{getCommonMesh(
{rho1, u1, E1, CG1, aL1, aT1, sigma1}),
getCommonMesh(
{rho2, u2, E2, CG2, aL2, aT2, sigma2})}
.solver()
.apply(Order2LocalDtHyperelasticSolverHandler::SolverType::Eucclhyd, 2, dt1, q, rho1, rho2, u1,
u2, E1, E2, CG1, CG2, aL1, aL2, aT1, aT2, sigma1, sigma2, p1, p2, bc_descriptor_list1,
bc_descriptor_list2, lambda1, mu1, lambda2, mu2, gamma1, p_inf1, gamma2, p_inf2);
}
));
this->_addBuiltinFunction("local_dt_hyperelastic_glace_solver",
std::function(
......
This diff is collapsed.
......@@ -26,37 +26,46 @@ class Order2LocalDtHyperelasticSolverHandler
private:
struct IOrder2LocalDtHyperelasticSolver
{
//virtual std::tuple<std::shared_ptr<const MeshVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const MeshVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>>
//apply(const SolverType& solver_type,
// const double& dt1,
// const size_t& q,
// const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
// const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
// const std::shared_ptr<const DiscreteFunctionVariant>& u1,
// const std::shared_ptr<const DiscreteFunctionVariant>& u2,
// const std::shared_ptr<const DiscreteFunctionVariant>& E1,
// const std::shared_ptr<const DiscreteFunctionVariant>& E2,
// const std::shared_ptr<const DiscreteFunctionVariant>& CG1,
// const std::shared_ptr<const DiscreteFunctionVariant>& CG2,
// const std::shared_ptr<const DiscreteFunctionVariant>& aL1,
// const std::shared_ptr<const DiscreteFunctionVariant>& aL2,
// const std::shared_ptr<const DiscreteFunctionVariant>& aT1,
// const std::shared_ptr<const DiscreteFunctionVariant>& aT2,
// const std::shared_ptr<const DiscreteFunctionVariant>& sigma1,
// const std::shared_ptr<const DiscreteFunctionVariant>& sigma2,
// const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1,
// const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2,
// const double& mu,
// const double& lambda) const = 0;
virtual std::tuple<std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>>
apply(const SolverType& solver_type,
const size_t& law,
const double& dt1,
const size_t& q,
const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& CG1,
const std::shared_ptr<const DiscreteFunctionVariant>& CG2,
const std::shared_ptr<const DiscreteFunctionVariant>& aL1,
const std::shared_ptr<const DiscreteFunctionVariant>& aL2,
const std::shared_ptr<const DiscreteFunctionVariant>& aT1,
const std::shared_ptr<const DiscreteFunctionVariant>& aT2,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma1,
const std::shared_ptr<const DiscreteFunctionVariant>& sigma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda1,
const std::shared_ptr<const DiscreteFunctionVariant>& mu1,
const std::shared_ptr<const DiscreteFunctionVariant>& lambda2,
const std::shared_ptr<const DiscreteFunctionVariant>& mu2,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma1,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf1,
const std::shared_ptr<const DiscreteFunctionVariant>& gamma2,
const std::shared_ptr<const DiscreteFunctionVariant>& p_inf2) const = 0;
virtual std::tuple<std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment