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] Assessment of making TransientPwElement inherent from Element #12996

Open
markelov208 opened this issue Jan 10, 2025 · 1 comment
Assignees
Labels
GeoMechanics Issues related to the GeoMechanicsApplication

Comments

@markelov208
Copy link
Contributor

Currently, TransientPwElement is inherent from UPw element which leads to unnecessary methods. At the same time TransientPwLineElement is inherent from Element and it has much smaller number of methods.

This issue goal is to investigate making TransientPwElement inherent from Element.

@markelov208 markelov208 self-assigned this Jan 10, 2025
@markelov208 markelov208 converted this from a draft issue Jan 10, 2025
@markelov208
Copy link
Contributor Author

markelov208 commented Jan 10, 2025

TransientPwElement has 27 functions, 20 of them are tested by the integration tests in test_transient_groundwater_flow.py
The following functions are tested:

  1. Create(IndexType NewId, NodesArrayType const& ThisNodes, ...
  2. Initialize
  3. Check
  4. InitializeSolutionStep
  5. InitializeNonLinearIteration
  6. FinalizeNonLinearIteration
  7. FinalizeSolutionStep
  8. CalculateOnIntegrationPoints(const Variable& rVariable, ...
  9. CalculateOnIntegrationPoints(const Variable<array_1d<double, 3>>& rVariable, ..
  10. CalculateAll
  11. InitializeElementVariables
  12. CalculateAndAddLHS
  13. CalculateAndAddCompressibilityMatrix
  14. CalculateAndAddRHS
  15. CalculateAndAddPermeabilityFlow
  16. CalculateAndAddFluidBodyFlow
  17. CalculateAndAddCompressibilityFlow
  18. CalculateKinematics
  19. GetNumberOfDOF
  20. GetDofs

The other functions are not tested by now but they return zero values except CalculateOnIntegrationPoints in the case of PERMEABILITY_MATRIX

  1. CalculateMassMatrix(MatrixType& rMassMatrix, const ProcessInfo&
    CurrentProcessInfo)
  2. CalculateDampingMatrix(MatrixType& rDampingMatrix, const ProcessInfo& rCurrentProcessInfo)
  3. GetValuesVector(Vector& rValues, int Step = 0)
  4. GetFirstDerivativesVector(Vector& rValues, int Step = 0)
  5. GetSecondDerivativesVector(Vector& rValues, int Step = 0)
  6. CalculateOnIntegrationPoints(const Variable& rVariable, std::vector& rOutput, const ProcessInfo& rCurrentProcessInfo)

InitializeNonLinearIteration and FinalizeNonLinearIteration are empty, just override the base class functions.

Some of TransientPwElement functions use

  1. UPwBaseElement::GetIntegrationMethod

  2. UPwBaseElement::CalculateIntegrationCoefficients

  3. UPwSmallStrainElement<TDim, TNumNodes>::ResetHydraulicDischarge

  4. UPwSmallStrainElement<TDim, TNumNodes>::CalculateHydraulicDischarge

  5. UPwSmallStrainElement<TDim, TNumNodes>::CalculateOnIntegrationPoints(const Variable& rVariable

  6. UPwSmallStrainElement<TDim, TNumNodes>::CalculateDerivativesOfSaturation

  7. UPwSmallStrainElement<TDim, TNumNodes>::CalculateDegreesOfSaturation

  8. UPwSmallStrainElement<TDim, TNumNodes>::CalculateFluidFluxes

  9. UPwSmallStrainElement<TDim, TNumNodes>::CalculateCompressibilityFlow

  10. UPwSmallStrainElement<TDim, TNumNodes>::CalculatePermeabilityFlow

  11. UPwSmallStrainElement<TDim, TNumNodes>::CalculateRelativePermeabilityValues

  12. UPwSmallStrainElement<TDim, TNumNodes>::CalculateBishopCoefficients

  13. UPwSmallStrainElement<TDim, TNumNodes>::CalculateFluidBodyFlow

  14. UPwSmallStrainElement<TDim, TNumNodes>::InitializeNodalPorePressureVariables

  15. UPwSmallStrainElement<TDim, TNumNodes>::InitializeNodalVolumeAccelerationVariables

  16. UPwSmallStrainElement<TDim, TNumNodes>::InitializeProperties

In addition strategy and scheme classes call
17. UPwBaseElement::GetDofList
18. UPwBaseElement::CalculateLocalSystem
19. UPwBaseElement::CalculateRightHandSide
20. UPwBaseElement::EquationIdVector

@indigocoral indigocoral added the GeoMechanics Issues related to the GeoMechanicsApplication label Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GeoMechanics Issues related to the GeoMechanicsApplication
Projects
None yet
Development

No branches or pull requests

2 participants