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

[GeoMechanicsApplication] Add the missing conditions to Geomechanics Application for 2D #11625

Merged
merged 31 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d9df948
mUPwFaceLoadCondition2D3N, 4N and 5N were previously added, but now m…
mnabideltares Sep 27, 2023
8f63089
mUPwNormalFaceLoadCondition2D3N, 4N, 5N are added
mnabideltares Sep 27, 2023
943faa3
UPwNormalFluxCondition2D3N, 4N and 5N are added
mnabideltares Sep 27, 2023
6b38383
PwNormalFluxCondition2D3N, 4N, and 5N are added
mnabideltares Sep 27, 2023
a58cebc
clean up
mnabideltares Sep 27, 2023
1749146
Extra cleanup
mnabideltares Sep 27, 2023
1ddac32
Merge branch 'master' into geo/11616-add-missing-conditions-2d
mnabideltares Feb 26, 2024
1430ea4
Added extra conditions
mnabideltares Mar 6, 2024
2bed4a3
Added test cases for conditions
mnabideltares Mar 8, 2024
fa18327
Added extra test cases, Fixed Gauss points for Axisymmetric, Remove n…
mnabideltares Mar 11, 2024
2aa1cfc
Fix a bug
mnabideltares Mar 11, 2024
d5c851a
Revision 1
mnabideltares Mar 12, 2024
facb688
Revision 2
mnabideltares Mar 12, 2024
52b4265
cleaned test_conditions.test_conditions.py
Mar 13, 2024
968efa2
moved MaterialParameters.json files into Common folder
Mar 13, 2024
7e6183e
push
Mar 13, 2024
2dbbd4b
Revision 3
mnabideltares Mar 13, 2024
2ffc4d7
Readme.md revision 1
mnabideltares Mar 13, 2024
404ca3a
Readme.md revision 2
mnabideltares Mar 13, 2024
297ac61
modified test cases, removed gravity, changed pressure bc to uniform
mnabideltares Mar 13, 2024
16a8544
Update README.md
mnabideltares Mar 13, 2024
5e18efc
Update README.md
mnabideltares Mar 13, 2024
b1327e6
modified test cases based on reviewers comment, modified figure in Re…
mnabideltares Mar 13, 2024
33f4faf
Merge branch 'geo/11616-add-missing-conditions-2d' of https://github.…
mnabideltares Mar 13, 2024
5cc64ba
"fluid_pressure_type": "Uniform", is added back to NORMAL_CONTACT_S…
mnabideltares Mar 13, 2024
cb5edcc
Readme is modified
mnabideltares Mar 13, 2024
cfd94df
Revision 4
mnabideltares Mar 14, 2024
c0a8c4c
Fixed grid input for 2D5N elements, fixed Gauss for 2D5N axisymmetric…
mnabideltares Mar 14, 2024
34928e3
figure for Readme.md is modified
mnabideltares Mar 14, 2024
d920b4d
Merge remote-tracking branch 'origin/master' into geo/11616-add-missi…
avdg81 Mar 15, 2024
1a1f8da
Added missing Create member function
avdg81 Mar 15, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,11 @@ Condition::DofsVectorType PwCondition<TDim, TNumNodes>::GetDofs() const
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template class PwCondition<2,1>;
template class PwCondition<2,2>;
template class PwCondition<2,3>;
template class PwCondition<2,4>;
template class PwCondition<2,5>;
template class PwCondition<3,1>;
template class PwCondition<3,3>;
template class PwCondition<3,4>;

template class PwCondition<2,3>;

} // Namespace Kratos.
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
// Aron Noordam
//


#if !defined(KRATOS_GEO_PW_CONDITION_H_INCLUDED )
#define KRATOS_GEO_PW_CONDITION_H_INCLUDED
#pragma once

// System includes
#include <cmath>
Expand Down Expand Up @@ -110,6 +108,4 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) PwCondition : public Condition

}; // class PwCondition.

} // namespace Kratos.

#endif // KRATOS_GEO_PW_CONDITION_H_INCLUDED defined
} // namespace Kratos.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

// Application includes
#include "custom_conditions/Pw_normal_flux_condition.hpp"
#include "custom_utilities/condition_utilities.hpp"

namespace Kratos
{
Expand Down Expand Up @@ -66,7 +67,9 @@ void PwNormalFluxCondition<TDim,TNumNodes>::
noalias(Variables.Np) = row(NContainer,GPoint);

//Compute weighting coefficient for integration
Variables.IntegrationCoefficient = this->CalculateIntegrationCoefficient(JContainer[GPoint], IntegrationPoints[GPoint].Weight() );
Variables.IntegrationCoefficient =
ConditionUtilities::CalculateIntegrationCoefficient<TDim, TNumNodes>(
JContainer[GPoint], IntegrationPoints[GPoint].Weight());

//Contributions to the right hand side
this->CalculateAndAddRHS(rRightHandSideVector, Variables);
Expand All @@ -89,65 +92,10 @@ void PwNormalFluxCondition<TDim,TNumNodes>::
}


//----------------------------------------------------------------------------------------
template< >
double PwNormalFluxCondition<2, 2>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double dx_dxi = Jacobian(0, 0);
double dy_dxi = Jacobian(1, 0);

double ds = sqrt(dx_dxi * dx_dxi + dy_dxi * dy_dxi);

return ds * Weight;
}


//----------------------------------------------------------------------------------------
template< >
double PwNormalFluxCondition<3, 3>::
CalculateIntegrationCoefficient(const Matrix& Jacobian,
const double& Weight)
{
double NormalVector[3];

NormalVector[0] = Jacobian(1, 0) * Jacobian(2, 1) - Jacobian(2, 0) * Jacobian(1, 1);

NormalVector[1] = Jacobian(2, 0) * Jacobian(0, 1) - Jacobian(0, 0) * Jacobian(2, 1);

NormalVector[2] = Jacobian(0, 0) * Jacobian(1, 1) - Jacobian(1, 0) * Jacobian(0, 1);

double dA = sqrt(NormalVector[0] * NormalVector[0]
+ NormalVector[1] * NormalVector[1]
+ NormalVector[2] * NormalVector[2]);

return dA * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double PwNormalFluxCondition<3, 4>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double NormalVector[3];

NormalVector[0] = Jacobian(1, 0) * Jacobian(2, 1) - Jacobian(2, 0) * Jacobian(1, 1);

NormalVector[1] = Jacobian(2, 0) * Jacobian(0, 1) - Jacobian(0, 0) * Jacobian(2, 1);

NormalVector[2] = Jacobian(0, 0) * Jacobian(1, 1) - Jacobian(1, 0) * Jacobian(0, 1);

double dA = sqrt(NormalVector[0] * NormalVector[0]
+ NormalVector[1] * NormalVector[1]
+ NormalVector[2] * NormalVector[2]);

return dA * Weight;
}


//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

template class PwNormalFluxCondition<2,2>;
template class PwNormalFluxCondition<2,3>;
template class PwNormalFluxCondition<2,4>;
template class PwNormalFluxCondition<2,5>;
template class PwNormalFluxCondition<3,3>;
template class PwNormalFluxCondition<3,4>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
// Aron Noordam
//


#if !defined(KRATOS_GEO_PW_NORMAL_FLUX_CONDITION_H_INCLUDED )
#define KRATOS_GEO_PW_NORMAL_FLUX_CONDITION_H_INCLUDED
#pragma once

// Project includes
#include "includes/serializer.h"
Expand Down Expand Up @@ -81,8 +79,6 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) PwNormalFluxCondition : public PwCon

void CalculateAndAddRHS(VectorType& rRightHandSideVector, NormalFluxVariables& rVariables);

virtual double CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight);

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

private:
Expand All @@ -107,6 +103,4 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) PwNormalFluxCondition : public PwCon

}; // class PwNormalFluxCondition.

} // namespace Kratos.

#endif // KRATOS_GEO_PW_NORMAL_FLUX_CONDITION_H_INCLUDED defined
} // namespace Kratos.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

// Application includes
#include "custom_conditions/U_Pw_face_load_condition.hpp"
#include "custom_utilities/condition_utilities.hpp"

namespace Kratos
{
Expand Down Expand Up @@ -66,116 +67,22 @@ void UPwFaceLoadCondition<TDim,TNumNodes>::
ConditionUtilities::CalculateNuMatrix<TDim, TNumNodes>(Nu,NContainer,GPoint);

//Compute weighting coefficient for integration
double integration_coefficient = this->CalculateIntegrationCoefficient(JContainer[GPoint],
IntegrationPoints[GPoint].Weight());
double integration_coefficient =
ConditionUtilities::CalculateIntegrationCoefficient<TDim, TNumNodes>(
JContainer[GPoint], IntegrationPoints[GPoint].Weight());

//Contributions to the right hand side
noalias(UVector) = prod(trans(Nu),TractionVector) * integration_coefficient;
ConditionUtilities::AssembleUBlockVector<TDim, TNumNodes>(rRightHandSideVector, UVector);
}
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<2,2>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double dx_dxi = Jacobian(0,0);
double dy_dxi = Jacobian(1,0);

double ds = sqrt(dx_dxi*dx_dxi + dy_dxi*dy_dxi);

return ds * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<2,3>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double dx_dxi = Jacobian(0,0);
double dy_dxi = Jacobian(1,0);

double ds = sqrt(dx_dxi*dx_dxi + dy_dxi*dy_dxi);

return ds * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<2,4>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
const double dx_dxi = Jacobian(0, 0);
const double dy_dxi = Jacobian(1, 0);

const double ds = std::sqrt(dx_dxi * dx_dxi + dy_dxi * dy_dxi);

return ds * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<2,5>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
const double dx_dxi = Jacobian(0, 0);
const double dy_dxi = Jacobian(1, 0);

const double ds = std::sqrt(dx_dxi * dx_dxi + dy_dxi * dy_dxi);

return ds * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<3,3>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double NormalVector[3];

NormalVector[0] = Jacobian(1,0) * Jacobian(2,1) - Jacobian(2,0) * Jacobian(1,1);

NormalVector[1] = Jacobian(2,0) * Jacobian(0,1) - Jacobian(0,0) * Jacobian(2,1);

NormalVector[2] = Jacobian(0,0) * Jacobian(1,1) - Jacobian(1,0) * Jacobian(0,1);

double dA = sqrt( NormalVector[0]*NormalVector[0]
+ NormalVector[1]*NormalVector[1]
+ NormalVector[2]*NormalVector[2]);

return dA * Weight;
}

//----------------------------------------------------------------------------------------
template< >
double UPwFaceLoadCondition<3,4>::
CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight)
{
double NormalVector[3];

NormalVector[0] = Jacobian(1,0) * Jacobian(2,1) - Jacobian(2,0) * Jacobian(1,1);

NormalVector[1] = Jacobian(2,0) * Jacobian(0,1) - Jacobian(0,0) * Jacobian(2,1);

NormalVector[2] = Jacobian(0,0) * Jacobian(1,1) - Jacobian(1,0) * Jacobian(0,1);

double dA = sqrt( NormalVector[0]*NormalVector[0]
+ NormalVector[1]*NormalVector[1]
+ NormalVector[2]*NormalVector[2]);

return dA * Weight;
}

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

template class UPwFaceLoadCondition<2,2>;
template class UPwFaceLoadCondition<2,3>;
template class UPwFaceLoadCondition<2,4>;
template class UPwFaceLoadCondition<2,5>;

template class UPwFaceLoadCondition<3,3>;
template class UPwFaceLoadCondition<3,4>;


} // Namespace Kratos.
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
// Vahid Galavi
//


#if !defined(KRATOS_GEO_U_PW_FACE_LOAD_CONDITION_H_INCLUDED )
#define KRATOS_GEO_U_PW_FACE_LOAD_CONDITION_H_INCLUDED
#pragma once

// Project includes
#include "includes/serializer.h"
Expand Down Expand Up @@ -77,8 +75,6 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwFaceLoadCondition
void CalculateRHS(VectorType& rRightHandSideVector,
const ProcessInfo& CurrentProcessInfo) override;

virtual double CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight);

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

private:
Expand All @@ -103,6 +99,4 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwFaceLoadCondition

}; // class UPwFaceLoadCondition.

} // namespace Kratos.

#endif // KRATOS_GEO_U_PW_FACE_LOAD_CONDITION_H_INCLUDED defined
} // namespace Kratos.
Original file line number Diff line number Diff line change
Expand Up @@ -298,21 +298,14 @@ double UPwFaceLoadInterfaceCondition<2,2>::CalculateIntegrationCoefficient(const
//----------------------------------------------------------------------------------------

template< >
double UPwFaceLoadInterfaceCondition<3,4>::CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight, const double& JointWidth)
double UPwFaceLoadInterfaceCondition<3, 4>::CalculateIntegrationCoefficient(const Matrix& Jacobian, const double& Weight, const double& JointWidth)
rfaasse marked this conversation as resolved.
Show resolved Hide resolved
{
KRATOS_TRY

double dx_dxi = Jacobian(0,0);

double dy_dxi = Jacobian(1,0);

double dz_dxi = Jacobian(2,0);

double ds = sqrt(dx_dxi*dx_dxi + dy_dxi*dy_dxi + dz_dxi*dz_dxi);


double ds = MathUtils<double>::Norm(column(Jacobian, 0));
return Weight * ds * JointWidth;

KRATOS_CATCH( "" )
KRATOS_CATCH("")
}

//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
// Vahid Galavi
//


#if !defined(KRATOS_GEO_U_PW_FACE_LOAD_INTERFACE_CONDITION_H_INCLUDED )
#define KRATOS_GEO_U_PW_FACE_LOAD_INTERFACE_CONDITION_H_INCLUDED
#pragma once

// Project includes
#include "includes/serializer.h"
Expand Down Expand Up @@ -110,5 +108,3 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwFaceLoadInterfaceCondition : publ
}; // class UPwFaceLoadInterfaceCondition.

} // namespace Kratos.

#endif // KRATOS_GEO_U_PW_FACE_LOAD_INTERFACE_CONDITION_H_INCLUDED defined
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
// Vahid Galavi
//


#if !defined(KRATOS_GEO_U_PW_FORCE_CONDITION_H_INCLUDED )
#define KRATOS_GEO_U_PW_FORCE_CONDITION_H_INCLUDED
#pragma once

// Project includes
#include "includes/serializer.h"
Expand Down Expand Up @@ -92,6 +90,4 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwForceCondition : public UPwCondit

}; // class UPwForceCondition.

} // namespace Kratos.

#endif // KRATOS_GEO_U_PW_FORCE_CONDITION_H_INCLUDED defined
} // namespace Kratos.
Loading