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
Branches
No related tags found
No related merge requests found
...@@ -440,6 +440,63 @@ LocalFSIModule::LocalFSIModule() ...@@ -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", this->_addBuiltinFunction("local_dt_hyperelastic_eucclhyd_neohook2_solver_order2",
std::function( std::function(
...@@ -493,6 +550,62 @@ LocalFSIModule::LocalFSIModule() ...@@ -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", this->_addBuiltinFunction("local_dt_hyperelastic_glace_solver",
std::function( std::function(
......
This diff is collapsed.
...@@ -26,37 +26,46 @@ class Order2LocalDtHyperelasticSolverHandler ...@@ -26,37 +26,46 @@ class Order2LocalDtHyperelasticSolverHandler
private: private:
struct IOrder2LocalDtHyperelasticSolver struct IOrder2LocalDtHyperelasticSolver
{ {
//virtual std::tuple<std::shared_ptr<const MeshVariant>, 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 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 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 DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>,
// std::shared_ptr<const DiscreteFunctionVariant>> std::shared_ptr<const DiscreteFunctionVariant>>
//apply(const SolverType& solver_type, apply(const SolverType& solver_type,
// const double& dt1, const size_t& law,
// const size_t& q, const double& dt1,
// const std::shared_ptr<const DiscreteFunctionVariant>& rho1, const size_t& q,
// const std::shared_ptr<const DiscreteFunctionVariant>& rho2, const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
// const std::shared_ptr<const DiscreteFunctionVariant>& u1, const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
// const std::shared_ptr<const DiscreteFunctionVariant>& u2, const std::shared_ptr<const DiscreteFunctionVariant>& u1,
// const std::shared_ptr<const DiscreteFunctionVariant>& E1, const std::shared_ptr<const DiscreteFunctionVariant>& u2,
// const std::shared_ptr<const DiscreteFunctionVariant>& E2, const std::shared_ptr<const DiscreteFunctionVariant>& E1,
// const std::shared_ptr<const DiscreteFunctionVariant>& CG1, const std::shared_ptr<const DiscreteFunctionVariant>& E2,
// const std::shared_ptr<const DiscreteFunctionVariant>& CG2, const std::shared_ptr<const DiscreteFunctionVariant>& CG1,
// const std::shared_ptr<const DiscreteFunctionVariant>& aL1, const std::shared_ptr<const DiscreteFunctionVariant>& CG2,
// const std::shared_ptr<const DiscreteFunctionVariant>& aL2, const std::shared_ptr<const DiscreteFunctionVariant>& aL1,
// const std::shared_ptr<const DiscreteFunctionVariant>& aT1, const std::shared_ptr<const DiscreteFunctionVariant>& aL2,
// const std::shared_ptr<const DiscreteFunctionVariant>& aT2, const std::shared_ptr<const DiscreteFunctionVariant>& aT1,
// const std::shared_ptr<const DiscreteFunctionVariant>& sigma1, const std::shared_ptr<const DiscreteFunctionVariant>& aT2,
// const std::shared_ptr<const DiscreteFunctionVariant>& sigma2, const std::shared_ptr<const DiscreteFunctionVariant>& sigma1,
// const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1, const std::shared_ptr<const DiscreteFunctionVariant>& sigma2,
// const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2, const std::shared_ptr<const DiscreteFunctionVariant>& p1,
// const double& mu, const std::shared_ptr<const DiscreteFunctionVariant>& p2,
// const double& lambda) const = 0; 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>, virtual std::tuple<std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>, 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