Commit c0aa1ee0 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#820 Poromechanics: create the interpolation file (which is identity but still required...).

parent e3b89f33
# Vertex index in mesh 1 / vertex index in mesh 2
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
......@@ -1066,6 +1066,7 @@ InitVertexMatchingInterpolator20 = {
} -- InitVertexMatchingInterpolator20
interpolation_file = "${HOME}/Codes/HappyHeart/Data/Interpolation/Poromechanics/InterfaceFluidSolid.hhdata"
-- Initial value of porosity at each dof.
......
......@@ -15,6 +15,8 @@
# include "Core/InputParameterData/InputParameterList.hpp"
# include "Core/InputParameter/Geometry/Domain.hpp"
# include "Core/InputParameter/Geometry/Mesh.hpp"
# include "Core/InputParameter/Geometry/InterpolationFile.hpp"
# include "Core/InputParameter/FElt/FEltSpace.hpp"
# include "Core/InputParameter/FElt/Unknown.hpp"
# include "Core/InputParameter/FElt/NumberingSubset.hpp"
......@@ -22,6 +24,7 @@
# include "Core/InputParameter/Parameter/Fluid/Fluid.hpp"
# include "Core/InputParameter/Parameter/Solid/Solid.hpp"
# include "Core/InputParameter/Interpolator/InitVertexMatching.hpp"
# include "Core/InputParameter/Solver/Petsc.hpp"
# include "ModelInstances/UnderDevelopment/Poromechanics/InputParameter/Porosity.hpp"
# include "ModelInstances/UnderDevelopment/Poromechanics/InputParameter/BulkSolid.hpp"
......@@ -151,6 +154,8 @@ namespace HappyHeart
InputParameter::InitVertexMatchingInterpolator<EnumUnderlyingType(InitVertexMatchingInterpolator::solid)>,
InputParameter::InitVertexMatchingInterpolator<EnumUnderlyingType(InitVertexMatchingInterpolator::fluid)>,
InputParameter::InterpolationFile,
// \todo #820 This parameter probably won't remain; keep it at the moment until it's completely sure...
InputParameter::PoromechanicsNS::Porosity,
......
......@@ -82,7 +82,8 @@ namespace HappyHeart
god_of_dof.GetNumberingSubset(EnumUnderlyingType(NumberingSubsetIndex::solid_displacement_in_fluid_mesh));
solid_on_fluid_mesh_ =
std::make_unique<Private::SolidOnFluidMesh>(god_of_dof,
std::make_unique<Private::SolidOnFluidMesh>(input_parameter_data,
god_of_dof,
numbering_subset,
GetSolidDisplacement(),
time_manager);
......
......@@ -12,10 +12,14 @@
#include "Core/TimeManager/TimeManager.hpp"
#include "FiniteElement/FiniteElementSpace/GodOfDof.hpp"
#include "FiniteElement/FiniteElementSpace/Private/DofProgramWiseIndexListPerVertexCoordIndexManager.hpp"
#include "Operators/NonConformInterpolator/FromVertexMatching.hpp"
#include "ModelInstances/UnderDevelopment/Poromechanics/Private/SolidOnFluidMesh.hpp"
namespace HappyHeart
{
......@@ -31,10 +35,24 @@ namespace HappyHeart
namespace // anonymous
{
void ComputeInterpolationMatrix(const InputParameterList& input_parameter_data,
GlobalMatrix& out)
{
auto& init_vertex_matching_manager =
::HappyHeart::Private::DofProgramWiseIndexListPerVertexCoordIndexManager::GetInstance();
NonConformInterpolatorNS::FromVertexMatching vertex_matching
(input_parameter_data,
init_vertex_matching_manager.GetDofProgramWiseIndexListPerVertexCoordIndex(EnumUnderlyingType(InitVertexMatchingInterpolator::solid)),
init_vertex_matching_manager.GetDofProgramWiseIndexListPerVertexCoordIndex(EnumUnderlyingType(InitVertexMatchingInterpolator::fluid)));
}
} // namespace anonymous
SolidOnFluidMesh::SolidOnFluidMesh(const GodOfDof& god_of_dof,
SolidOnFluidMesh::SolidOnFluidMesh(const InputParameterList& input_parameter_data,
const GodOfDof& god_of_dof,
const NumberingSubset& numbering_subset,
const GlobalVector& solid_displacement_on_solid_mesh,
const TimeManager& time_manager)
......@@ -76,16 +94,6 @@ namespace HappyHeart
{
//
// {
// auto& init_vertex_matching_manager = Private::DofProgramWiseIndexListPerVertexCoordIndexManager::GetInstance();
//
// solid_to_fluid_velocity_on_fsi_interpolator_ =
// std::make_unique<NonConformInterpolatorNS::FromVertexMatching>(input_parameter_data,
// init_vertex_matching_manager.GetDofProgramWiseIndexListPerVertexCoordIndex(EnumUnderlyingType(InitVertexMatchingInterpolator::solid)),
// init_vertex_matching_manager.GetDofProgramWiseIndexListPerVertexCoordIndex(EnumUnderlyingType(InitVertexMatchingInterpolator::fluid)));
// }
//
} // namespace anonymous
......
......@@ -16,6 +16,8 @@
# include "Core/LinearAlgebra/GlobalVector.hpp"
# include "ModelInstances/UnderDevelopment/Poromechanics/InputParameterList.hpp"
namespace HappyHeart
{
......@@ -70,12 +72,15 @@ namespace HappyHeart
/*!
* \brief Constructor.
*
* \param[in] input_parameter_data Objects which stores the content extracted from the input parameter
* file.
* \param[in] god_of_dof God of dof related to the fluid mesh.
* \param[in] numbering_subset Numbering subset upon which solid displacement is defined (on fluid mesh...)
* \param[in] solid_displacement_on_solid_mesh Solid displacement as computed on the solid mesh.
* \param[in] time_manager Time manager.
*/
explicit SolidOnFluidMesh(const GodOfDof& god_of_dof,
explicit SolidOnFluidMesh(const InputParameterList& input_parameter_data,
const GodOfDof& god_of_dof,
const NumberingSubset& numbering_subset,
const GlobalVector& solid_displacement_on_solid_mesh,
const TimeManager& time_manager);
......
......@@ -110,7 +110,6 @@ namespace HappyHeart
}
template<ParameterNS::Type TypeT>
template<class UpdateFunctorT>
typename AtQuadraturePoint<TypeT>::return_type
......@@ -136,8 +135,7 @@ namespace HappyHeart
value_holder.last_update_index = GetTimeManager().NtimeModified();
update_functor(value_holder.value);
}
template<ParameterNS::Type TypeT>
[[noreturn]] typename AtQuadraturePoint<TypeT>::return_type
......
Supports Markdown
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