-
Notifications
You must be signed in to change notification settings - Fork 284
Geo/14021 interface fluid body flow calculator #14215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
159b2ff
7574fb2
da4eb10
155d84b
0edb224
980c33d
eae21cd
70b8145
da6a077
b082d5f
4032b09
0da0559
56877da
4403a63
a9345a5
76bf9c7
452f9d4
0e5b605
7304b45
f54a696
c9a1ad7
645ab69
a8c0f23
35daff1
973f815
e5e5c90
9e27827
5911826
d8c4df5
3c69d41
f682c03
d805995
6837aa1
d07d5db
c423f8e
7686f14
fb2e949
08a674e
fff28fb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,6 +14,8 @@ | |
| #pragma once | ||
|
|
||
| #include "contribution_calculators/calculation_contribution.h" | ||
| #include "contribution_calculators/fluid_body_flow_calculator.hpp" | ||
| #include "contribution_calculators/permeability_calculator.hpp" | ||
| #include "contribution_calculators/stiffness_calculator.hpp" | ||
| #include "custom_elements/contribution_calculators/pu_coupling_calculator.hpp" | ||
| #include "custom_elements/contribution_calculators/up_coupling_calculator.hpp" | ||
|
|
@@ -30,8 +32,6 @@ | |
|
|
||
| namespace Kratos | ||
| { | ||
| class RetentionLaw; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we actually do need an include for the retention law (since it's there as a member), but indeed we don't need this forward declare |
||
|
|
||
| class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwInterfaceElement : public Element | ||
| { | ||
| public: | ||
|
|
@@ -65,13 +65,16 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwInterfaceElement : public Element | |
|
|
||
| void EquationIdVector(EquationIdVectorType& rResult, const ProcessInfo&) const override; | ||
| void CalculateAndAssignStiffnessMatrix(Element::MatrixType& rLeftHandSideMatrix, const ProcessInfo& rProcessInfo); | ||
| void CalculateAndAssignPermeabilityMatrix(Element::MatrixType& rLeftHandSideMatrix); | ||
| void CalculateLeftHandSide(MatrixType& rLeftHandSideMatrix, const ProcessInfo&) override; | ||
| void CalculateAndAssembleStiffnessForceVector(Element::VectorType& rRightHandSideVector, | ||
| const ProcessInfo& rProcessInfo); | ||
| void CalculateAndAssignUPCouplingMatrix(MatrixType& rLeftHandSideMatrix) const; | ||
| void CalculateAndAssignPUCouplingMatrix(MatrixType& rLeftHandSideMatrix) const; | ||
| void CalculateAndAssembleUPCouplingForceVector(Element::VectorType& rRightHandSideVector) const; | ||
| void CalculateAndAssemblePUCouplingForceVector(Element::VectorType& rRightHandSideVector) const; | ||
| void CalculateAndAssemblePermeabilityFlowVector(Element::VectorType& rRightHandSideVector); | ||
| void CalculateAndAssembleFluidBodyFlowVector(Element::VectorType& rRightHandSideVector); | ||
|
Comment on lines
67
to
+77
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All of these functions, except |
||
| void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo&) override; | ||
| void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix, | ||
| VectorType& rRightHandSideVector, | ||
|
|
@@ -117,6 +120,10 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwInterfaceElement : public Element | |
| Matrix RotateStressToLocalCoordinates(const Geo::IntegrationPointType& rIntegrationPoint, | ||
| const Vector& rGlobalStressVector) const; | ||
| Vector ConvertLocalStressToTraction(const Matrix& rLocalStress) const; | ||
| Matrix CalculatePwBMatrix(const Geo::IntegrationPointType& rIntegrationPoint) const; | ||
| Geometry<Node>::ShapeFunctionsGradientsType CalculateLocalPwBMatricesAtIntegrationPoints() const; | ||
| std::vector<double> CalculateIntegrationPointFluidPressures() const; | ||
| std::vector<Vector> CalculateProjectedGravity() const; | ||
|
|
||
| Geo::BMatricesGetter CreateBMatricesGetter() const; | ||
| Geo::StrainVectorsGetter CreateRelativeDisplacementsGetter() const; | ||
|
|
@@ -127,29 +134,34 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwInterfaceElement : public Element | |
| std::function<Vector()> CreateVoigtVectorGetter() const; | ||
| std::function<std::vector<double>()> CreateBiotCoefficientsGetter() const; | ||
| std::function<std::vector<double>()> CreateBishopCoefficientsGetter() const; | ||
| std::function<Vector()> CreateNodalPressuresGetter() const; | ||
| Geo::NodalValuesGetter CreateWaterPressureGeometryNodalVariableGetter() const; | ||
| std::function<Vector()> CreateNodalVelocitiesGetter() const; | ||
| std::function<std::vector<double>()> CreateDegreesOfSaturationGetter() const; | ||
|
|
||
| std::vector<double> CalculateBiotCoefficients() const; | ||
| std::vector<double> CalculateBishopCoefficients() const; | ||
| Vector CalculateIntegrationPointFluidPressures() const; | ||
| Vector GetWaterPressureGeometryNodalVariable() const; | ||
| Vector GetGeometryVelocityValues() const; | ||
| Matrix GetNpContainer() const; | ||
| std::vector<double> GetDegreesOfSaturationValues() const; | ||
| std::vector<double> CalculateBiotCoefficients() const; | ||
| std::vector<double> CalculateBishopCoefficients() const; | ||
| Vector GetWaterPressureGeometryNodalVariable() const; | ||
| Vector GetGeometryVelocityValues() const; | ||
| Matrix GetNpContainer() const; | ||
| std::vector<double> GetDegreesOfSaturationValues() const; | ||
| Geo::RetentionLawsGetter CreateRetentionLawsGetter() const; | ||
| Geo::MaterialPermeabilityMatrixGetter CreateMaterialPermeabilityGetter() const; | ||
| Geo::ShapeFunctionGradientsGetter CreatePwBMatricesGetter() const; | ||
| Geo::IntegrationPointValuesGetter CreateFluidPressureCalculator() const; | ||
| std::function<std::vector<Vector>()> CreateProjectedGravityCalculator() const; | ||
|
|
||
| template <unsigned int MatrixSize> | ||
| typename StiffnessCalculator<MatrixSize>::InputProvider CreateStiffnessInputProvider(const ProcessInfo& rProcessInfo); | ||
| typename StiffnessCalculator<MatrixSize>::InputProvider CreateStiffnessInputProvider(const ProcessInfo& rProcessInfo) const; | ||
|
|
||
| template <unsigned int MatrixSize> | ||
| auto CreateStiffnessCalculator(const ProcessInfo& rProcessInfo); | ||
| auto CreateStiffnessCalculator(const ProcessInfo& rProcessInfo) const; | ||
|
|
||
| template <unsigned int MatrixSize> | ||
| void CalculateAndAssignStiffnessMatrix(MatrixType& rLeftHandSideMatrix, const ProcessInfo& rProcessInfo); | ||
| void CalculateAndAssignStiffnessMatrix(MatrixType& rLeftHandSideMatrix, const ProcessInfo& rProcessInfo) const; | ||
|
|
||
| template <unsigned int MatrixSize> | ||
| void CalculateAndAssembleStiffnessForceVector(VectorType& rRightHandSideVector, const ProcessInfo& rProcessInfo); | ||
| void CalculateAndAssembleStiffnessForceVector(VectorType& rRightHandSideVector, | ||
| const ProcessInfo& rProcessInfo) const; | ||
|
|
||
| template <unsigned int NumberOfRows, unsigned int NumberOfColumns> | ||
| typename UPCouplingCalculator<NumberOfRows, NumberOfColumns>::InputProvider CreateUPCouplingInputProvider() const; | ||
|
|
@@ -175,15 +187,36 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwInterfaceElement : public Element | |
| template <unsigned int NumberOfRows, unsigned int NumberOfColumns> | ||
| void CalculateAndAssemblePUCouplingForceVector(VectorType& rRightHandSideVector) const; | ||
|
|
||
| template <unsigned int TNumNodes> | ||
| typename PermeabilityCalculator<TNumNodes>::InputProvider CreatePermeabilityInputProvider() const; | ||
|
|
||
| template <unsigned int TNumNodes> | ||
| auto CreatePermeabilityCalculator() const; | ||
|
|
||
| template <unsigned int TnumNodes> | ||
| void CalculateAndAssignPermeabilityMatrix(MatrixType& rLeftHandSideMatrix) const; | ||
|
|
||
| template <unsigned int TnumNodes> | ||
| void CalculateAndAssemblePermeabilityFlowVector(VectorType& rRightHandSideVector) const; | ||
|
|
||
| template <unsigned int TNumNodes> | ||
| typename FluidBodyFlowCalculator<TNumNodes>::InputProvider CreateFluidBodyFlowInputProvider() const; | ||
|
|
||
| template <unsigned int TNumNodes> | ||
| auto CreateFluidBodyFlowCalculator() const; | ||
|
|
||
| template <unsigned int TnumNodes> | ||
| void CalculateAndAssembleFluidBodyFlowVector(VectorType& rRightHandSideVector) const; | ||
|
|
||
| std::function<Matrix(const Geometry<Node>&, const array_1d<double, 3>&)> mfpCalculateRotationMatrix; | ||
|
|
||
| std::unique_ptr<IntegrationScheme> mpIntegrationScheme; | ||
| std::unique_ptr<StressStatePolicy> mpStressStatePolicy; | ||
| std::vector<ConstitutiveLaw::Pointer> mConstitutiveLaws; | ||
| std::vector<RetentionLaw::Pointer> mRetentionLaws; | ||
| IntegrationCoefficientsCalculator mIntegrationCoefficientsCalculator; | ||
| Geo::GeometryUniquePtr mpOptionalPressureGeometry; | ||
| std::vector<CalculationContribution> mContributions; | ||
| std::vector<RetentionLaw::Pointer> mRetentionLawVector; | ||
|
|
||
| friend class Serializer; | ||
| }; | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.