Skip to content
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

Extend porous navier stokes #11236

Merged
merged 20 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e2afe0c
Merge branch 'master' into extend_porous_Navier_Stokes
jgonzalezusua Jun 6, 2023
70e9a1a
IRegistering quadratic elements
jgonzalezusua Jun 7, 2023
7ea6cb2
Fixing terms and including transform of second shape derivatives
jgonzalezusua Jun 7, 2023
81db336
InitializeNonLinearIteration to update the subscale velocity in dynam…
jgonzalezusua Jun 7, 2023
2573e3e
including virtual to derive the bdf2 Update function
jgonzalezusua Jun 7, 2023
e8183f7
Including quadratic element tests
jgonzalezusua Jun 7, 2023
15dc987
Including porosity in tests
jgonzalezusua Jun 7, 2023
165a63d
removing InitializeNonLinIteration
jgonzalezusua Jun 7, 2023
e087a21
remove useless virtual
jgonzalezusua Jun 7, 2023
4775934
Joining tests
jgonzalezusua Jun 8, 2023
1c629c6
Merge branch 'master' into extend_porous_Navier_Stokes
jgonzalezusua Sep 27, 2023
5170481
including second derivatives implementation from KratosCore
jgonzalezusua Sep 27, 2023
8ba76b4
including all terms in bilinear elements
jgonzalezusua Oct 13, 2023
cd762a7
Merge branch 'master' into extend_porous_Navier_Stokes
jgonzalezusua Oct 13, 2023
2399f0a
Fixing fluid cpp tests
jgonzalezusua Oct 13, 2023
72b3815
removing virtual
jgonzalezusua Oct 16, 2023
298b44a
include the correct virtual and removing KRATOS_WATCH
jgonzalezusua Oct 17, 2023
67a11d7
removing last virtual of this PR and removing minor comment
jgonzalezusua Oct 17, 2023
c3e6c90
changing fluid_fraction_gradient definition
jgonzalezusua Oct 18, 2023
9de59e2
shorting tests
jgonzalezusua Oct 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>
/// Type for an array of shape function gradient matrices
typedef GeometryType::ShapeFunctionsGradientsType ShapeFunctionDerivativesArrayType;

typedef GeometryType::ShapeFunctionsSecondDerivativesType ShapeFunctionsSecondDerivativesType;

constexpr static unsigned int Dim = DVMS<TElementData>::Dim;
constexpr static unsigned int NumNodes = DVMS<TElementData>::NumNodes;
constexpr static unsigned int BlockSize = DVMS<TElementData>::BlockSize;
Expand Down Expand Up @@ -193,6 +195,7 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>

/// Print information about this object.
void PrintInfo(std::ostream& rOStream) const override;
void GetShapeSecondDerivatives(DenseVector<DenseVector<Matrix>> &rDDN_DDX) const;


///@}
Expand All @@ -215,6 +218,8 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>
DenseVector< array_1d<double,Dim> > mPredictedSubscaleVelocity;
DenseVector< array_1d<double,Dim> > mOldSubscaleVelocity;
DenseVector< array_1d<double,Dim> > mPreviousVelocity;
DenseVector <BoundedMatrix<double,Dim,Dim>> mViscousResistanceTensor;
int mInterpolationOrder = 1;

///@}
///@name Protected Operators
Expand Down Expand Up @@ -242,23 +247,55 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>
MatrixType& rLocalLHS,
VectorType& rLocalRHS) override;

void CalculateMassMatrix(MatrixType& rMassMatrix,
const ProcessInfo& rCurrentProcessInfo) override;

void CalculateLocalVelocityContribution(
MatrixType& rDampMatrix,
VectorType& rRightHandSideVector,
const ProcessInfo& rCurrentProcessInfo) override;

// Implementation details of AlternativeDVMSDEMCoupled /////////////////////////////////////////

void AddMassLHS(
TElementData& rData,
MatrixType& rMassMatrix) override;

void CalculateResistanceTensor(
const TElementData& rData);

void CalculateSpectralRadius(
const TElementData& rData,
double& spectral_radius,
double tau_one_NS,
const double c1,
MatrixType matrix) const;

void AddMassStabilization(
TElementData& rData,
MatrixType& rMassMatrix) override;

void AddReactionStabilization(
TElementData& rData,
BoundedMatrix<double,NumNodes*(Dim+1),NumNodes*(Dim+1)>& rLHS,
VectorType& rLocalRHS);


void AddViscousTerm(
const TElementData& rData,
BoundedMatrix<double,LocalSize,LocalSize>& rLHS,
VectorType& rRHS) override;

void CalculateProjections(const ProcessInfo &rCurrentProcessInfo) override;

void UpdateIntegrationPointDataSecondDerivatives(
TElementData& rData,
unsigned int IntegrationPointIndex,
double Weight,
const typename TElementData::MatrixRowType& rN,
const typename TElementData::ShapeDerivativesType& rDN_DX,
const typename TElementData::ShapeFunctionsSecondDerivativesType& rDDN_DDX) const;

void CalculateStabilizationParameters(
const TElementData& rData,
const array_1d<double,3> &Velocity,
Expand All @@ -273,6 +310,14 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>
const TElementData& rData,
double& rPressureSubscale) const override;

bool GaussSeidelEigenSystem(
MatrixType& rA,
MatrixType& rEigenVectorsMatrix,
MatrixType& rEigenValuesMatrix,
const double Tolerance = 1.0e-18,
const SizeType MaxIterations = 20
) const;

array_1d<double,3> FullConvectiveVelocity(
const TElementData& rData) const override;

Expand All @@ -290,6 +335,23 @@ class AlternativeDVMSDEMCoupled : public DVMS<TElementData>
const Variable<array_1d<double, 3>>& rVariable,
array_1d<double, 3>& rOutput, const ProcessInfo& rCurrentProcessInfo) override;

void CalculateOnIntegrationPoints(
const Variable<array_1d<double, 3>>& rVariable,
std::vector<array_1d<double, 3>>& rOutput,
const ProcessInfo& rCurrentProcessInfo) override;

void CalculateOnIntegrationPoints(
const Variable<double>& rVariable,
std::vector<double>& rOutput,
const ProcessInfo& rCurrentProcessInfo) override;

void CalculateOnIntegrationPoints(
Variable<Matrix> const& rVariable,
std::vector<Matrix>& rValues,
ProcessInfo const& rCurrentProcessInfo) override;

GeometryData::IntegrationMethod GetIntegrationMethod() const override;

///@}
///@name Protected Access
///@{
Expand Down
Loading