Skip to main content

Structure

This documentation is old. Update it.

 TYPE, PUBLIC, EXTENDS( Rank2Tensor_ ) :: DeformationGradient_
REAL( DFP ), ALLOCATABLE, DIMENSION( :, : ) :: R
REAL( DFP ), ALLOCATABLE, DIMENSION( :, : ) :: U
REAL( DFP ), ALLOCATABLE, DIMENSION( :, : ) :: V
REAL( DFP ), ALLOCATABLE, DIMENSION( : ) :: EigenVal
REAL( DFP ), ALLOCATABLE, DIMENSION( :, : ) :: EigenVec_U
REAL( DFP ), ALLOCATABLE, DIMENSION( :, : ) :: EigenVec_V

Description

Getting Started

Constructing the object

The subroutine Initiate() can be used to create the DeformationGradient_ class.

CALL obj%Initiate( )
CALL obj%Initiate( Mat2( :, : ) )
CALL obj%Initiate( Scalar )
CALL obj%Initiate( VoigtVec, VoigtType )
CALL obj%Initiate( obj2 )

In addition we can use the function DeformationGradient() which returns the DeformationGradient_ type.

obj = DeformationGradient( )
obj = DeformationGradient( Mat2, FULL )
obj = DeformationGradient( Mat2 )

We have also defined function DeformationGradient_Pointer() that returns the pointer to the DeformationGradient_ pointer.

obj = DeformationGradient_Pointer( )
obj = DeformationGradient_Pointer( Mat2, FULL )
obj = DeformationGradient_Pointer( Mat2 )

Here Full can be True or False. If True then R, U, V, EigenVal, EigenVec_U, EigenVec_V all will be computed.

We can also use Assignment Operator( = )

obj = Mat2( :, : )

Deallocating the object

We can call obj%Deallocate()

Getting the Rotation part

R = .R. obj

Getting the Right Stretch Tensor

U = .U. obj

Getting the Left Stretch Tensor

V = .V. obj

Getting the EigenValues of F, U, V

Not that U and V are similar tensor, therefore, F, U, V all have same eigenvalues.

Val = .EigenValues. obj

Getting the EigenVectors of U and V

P( :, : ) = .EigenVectorsU. obj
P( :, : ) = .EigenVectorsV. obj

Getting the Jacobian

J = .J. obj

Getting Right and Left Cauchy Green Deformation Tensor

C = RightCauchyGreen( obj )
C = RightCauchyGreen( Mat )
C = .C. obj
C = .C. Mat
B = LeftCauchyGreen( obj )
B = LeftCauchyGreen( Mat )
B = .B. obj
B = .B. Mat

Getting the Strain

E = GreenStrain( obj )
E = GreenStrain( Mat )
E = .GreenStrain. obj
E = .GreenStrain. Mat
e = AlmansiStrain( obj )
e = AlmansiStrain( Mat )
e = .AlmansiStrain. obj
e = .AlmansiStrain. Mat