Skip to main content

ElasticNitscheMatrix

Interface1​

This routine computes the following

∫Γ(δu⋅e)(σ:e⊗n)dS=∫Γ(δu⋅e)(σ:e⊗n)dS=∫Γ(δu⋅e){λ(∇⋅u)(n⋅e)+μ(u⊗∇):(e⊗n+n⊗e)}=δuiI[M]IJijujJ\begin{aligned}\int_{\Gamma}\left(\delta{\bf u}\cdot{\bf e}\right)\left(\sigma:{\bf e}\otimes{\bf n}\right)dS & =\int_{\Gamma}\left(\delta{\bf u}\cdot{\bf e}\right)\left(\sigma:{\bf e}\otimes{\bf n}\right)dS\\ & =\int_{\Gamma}\left(\delta{\bf u}\cdot{\bf e}\right)\left\{ \lambda\left(\nabla\cdot{\bf u}\right)\left({\bf n}\cdot{\bf e}\right)+\mu\left({\bf u}\otimes\nabla\right):\left({\bf e}\otimes{\bf n}+{\bf n}\otimes{\bf e}\right)\right\} \\ & =\delta u_{iI}\left[{\bf M}\right]_{IJ}^{ij}u_{jJ} \end{aligned}

where, we have used

σijnj=λ(∂uk∂xk)ni+μ∂ui∂xknk+μ∂uk∂xink\sigma_{ij}n_{j}=\lambda\left(\frac{\partial u_{k}}{\partial x_{k}}\right)n_{i}+\mu\frac{\partial u_{i}}{\partial x_{k}}n_{k}+\mu\frac{\partial u_{k}}{\partial x_{i}}n_{k}

In the following routine lambda, mu, and evec are the FEVariable_.

INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Lambda, Mu, Evec) &
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
CLASS(FEVariable_), INTENT(IN) :: Lambda, Mu, Evec
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE

In the following routine lambda, mu are constant and real values, and Evec is FEVariable_.

INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Lambda, Mu, Evec) &
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
CLASS(FEVariable_), INTENT(IN) :: Evec
REAL(DFP), INTENT(IN) :: Lambda, Mu
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE

Interface2​

−∫ΓfδuiσijnjdS=−δuiI∫ΓfNIσijnjdS=−δuiI∫ΓfNIλ∂uj∂xjnidS−δuiI∫ΓfNIμ∂ui∂xknkdS−δuiI∫ΓfNIμ∂uj∂xinjdS\begin{aligned}-\int_{\Gamma_{f}}\delta u_{i}\sigma_{ij}n_{j}dS & =-\delta u_{iI}\int_{\Gamma_{f}}N^{I}\sigma_{ij}n_{j}dS\\ & =-\delta u_{iI}\int_{\Gamma_{f}}N^{I}\lambda\frac{\partial u_{j}}{\partial x_{j}}n_{i}dS\\ & -\delta u_{iI}\int_{\Gamma_{f}}N^{I}\mu\frac{\partial u_{i}}{\partial x_{k}}n_{k}dS\\ & -\delta u_{iI}\int_{\Gamma_{f}}N^{I}\mu\frac{\partial u_{j}}{\partial x_{i}}n_{j}dS \end{aligned} −∫ΓfδuiσijnjdS=−δuiI[∫ΓfNIλ∂NJ∂xjnidS]ujJ−δuiI[∫ΓfNIμ∂NI∂xknkdS]uiI−δuiI[∫ΓfNIμ∂NJ∂xinjdS]ujJ\begin{aligned}-\int_{\Gamma_{f}}\delta u_{i}\sigma_{ij}n_{j}dS & =-\delta u_{iI}\left[\int_{\Gamma_{f}}N^{I}\lambda\frac{\partial N^{J}}{\partial x_{j}}n_{i}dS\right]u_{jJ}\\ & -\delta u_{iI}\left[\int_{\Gamma_{f}}N^{I}\mu\frac{\partial N^{I}}{\partial x_{k}}n_{k}dS\right]u_{iI}\\ & -\delta u_{iI}\left[\int_{\Gamma_{f}}N^{I}\mu\frac{\partial N^{J}}{\partial x_{i}}n_{j}dS\right]u_{jJ} \end{aligned} −∫ΓfδuiσijnjdS=−δuiI[N1]IJijujJ-\int_{\Gamma_{f}}\delta u_{i}\sigma_{ij}n_{j}dS=-\delta u_{iI}\left[{\bf N}_{1}\right]_{IJ}^{ij}u_{jJ} [N1]IJij=∫ΓfNIλ∂NJ∂xjnidS+δij∫ΓfNIμ∂NI∂xknkdS+∫ΓfNIμ∂NJ∂xinjdS\left[{\bf N}_{1}\right]_{IJ}^{ij}=\int_{\Gamma_{f}}N^{I}\lambda\frac{\partial N^{J}}{\partial x_{j}}n_{i}dS+\delta_{ij}\int_{\Gamma_{f}}N^{I}\mu\frac{\partial N^{I}}{\partial x_{k}}n_{k}dS+\int_{\Gamma_{f}}N^{I}\mu\frac{\partial N^{J}}{\partial x_{i}}n_{j}dS

In the following routine lambda, mu are instances of FEVariable_.

INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Lambda, Mu, isNoSlip)&
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
CLASS(FEVariable_), INTENT(IN) :: Lambda, Mu
LOGICAL(LGT), INTENT(IN) :: isNoSlip
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE

In the following routine lambda and mu are constant and real values.

INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Lambda, Mu, isNoSlip)&
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
REAL(DFP), INTENT(IN) :: Lambda, Mu
LOGICAL(LGT), INTENT(IN) :: isNoSlip
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE

Interface3​

[Nn3]IJij=∫ΓfαNIeiNJej\left[{\bf N}_{n3}\right]_{IJ}^{ij}=\int_{\Gamma_{f}}\alpha N^{I}e_{i}N^{J}e_{j}
INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Alpha, Evec) &
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
CLASS(FEVariable_), INTENT(IN) :: Alpha, Evec
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE
INTERFACE
MODULE PURE FUNCTION ElasticNitscheMatrix(Test, Trial, Alpha, Evec) &
& RESULT(Ans)
CLASS(ElemshapeData_), INTENT(IN) :: Test, Trial
CLASS(FEVariable_), INTENT(IN) :: Evec
REAL(DFP), INTENT(IN) :: Alpha
REAL(DFP), ALLOCATABLE :: Ans(:, :)
END FUNCTION ElasticNitscheMatrix
END INTERFACE