Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • liangb30/cas-741-boliang
  • pignierb/cas741
  • jimoha1/cas741
  • huoy8/cas741
  • grandhia/cas741
  • chenq84/cas741
  • yex33/cas741
  • xuey45/cas741
  • garcilau/cas-741-uriel-garcilazo-msa
  • schankuc2/cas741
  • ahmady3/cas741
  • saadh/cas741
  • singhk56/cas741
  • lin523/cas741
  • fangz58/cas741
  • tranp30/cas741
  • ceranich/cas741
  • norouf1/cas741
  • mirzam48/cas741
  • djavahet/cas741
  • hossaa27/cas741
  • yiding_el/cas-741-upate-name
  • sayadia/cas741
  • elmasn2/cas741
  • cheemf8/cas741
  • cheny997/cas741
  • ma209/cas741
  • mousas26/cas741
  • liuy363/cas741
  • wongk124/cas741
  • dua11/cas741
  • zhoug28/cas741
  • courses/cas-741-tst
  • liy443/cas-741-fork-csv
  • sochania/cas741
  • liy443/cas-741-update-csv-old
  • mahdipoa/cas741
  • wangz892/cas741
  • wangn14/cas741
  • defourej/cas741
  • zhaox183/cas741
  • smiths/cas741
42 results
Show changes
Showing
with 4857 additions and 0 deletions
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:mime-type
V 24
application/octet-stream
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
K 13
svn:eol-style
V 6
native
END
! ------------------------------------------------------------------------
!> \brief Module for Constitutive Matrix
! ------------------------------------------------------------------------
MODULE constitutive
USE system_constants !> Global constants (for size of matrix)
USE log_message_control !> Printing log/error messages
USE log_messages !> Log/error codes
USE dense_matrix_def !> Dense Matrix data type
IMPLICIT NONE
PRIVATE
! ************************************************************************
! EXPORTS
! ************************************************************************
!> Exported interfaces
PUBLIC :: dmatrix
! ************************************************************************
! LOCAL CONSTANTS
! ************************************************************************
INTEGER, PARAMETER :: sdr=CNSMAT
! ************************************************************************
! DATA TYPES
! ************************************************************************
! none
! ************************************************************************
! INTERFACES
! ************************************************************************
!> \brief Interface to constitutive matrix access program
INTERFACE dmatrix
MODULE PROCEDURE dmatrix_linear_elastic_plane_strain_
MODULE PROCEDURE dmatrix_linear_elastic_plane_strain_exc_
END INTERFACE dmatrix
CONTAINS
! ************************************************************************
! ACCESS PROGRAMS
! ************************************************************************
! ------------------------------------------------------------------------
!> \brief Constitutive matrix (linear elastic, plane strain)
!!
!! \param emod Elastic modulus
!! \param nu Poisson's ratio
!! \param Dmat Constitutive matrix
!!
!! This routine builds the constitutive matrix for a linear elastic
!! material under plane strain conditions. The matrix has the following
!! form:
!!
!! D = ( emod / ((1+nu)*(1-2*nu)) ) * [ 1-nu nu 0 ]
!! [ nu 1-nu 0 ]
!! [ 0 0 0.5*(1-2*v) ]
! ------------------------------------------------------------------------
SUBROUTINE dmatrix_linear_elastic_plane_strain_ (emod,nu, Dmat)
DOUBLE PRECISION, INTENT(IN) :: emod,nu
TYPE(matrixT), INTENT(INOUT) :: Dmat
DOUBLE PRECISION :: one_minus_nu, one_minus_two_nu, coef
one_minus_nu = 1.d0 - nu
one_minus_two_nu = 1.d0 - 2.d0*nu
coef = emod / ((1.d0+nu)*one_minus_two_nu)
CALL dm_init(Dmat, NTNS,NTNS)
CALL dm_set(Dmat, 1,1, coef*one_minus_nu)
CALL dm_set(Dmat, 2,1, coef*nu)
CALL dm_set(Dmat, 1,2, dm_get(Dmat, 2,1))
CALL dm_set(Dmat, 2,2, dm_get(Dmat, 1,1))
CALL dm_set(Dmat, 3,3, 0.5d0*coef*one_minus_two_nu)
END SUBROUTINE dmatrix_linear_elastic_plane_strain_
! ------------------------------------------------------------------------
!> \brief Constitutive matrix (linear elastic, plane strain)
!!
!! \param emod Elastic modulus
!! \param nu Poisson's ratio
!! \param Dmat Constitutive matrix
!! \param exc Error code
!!
!! \exception EXCEED The specified values of elastic modulus or
!! Poisson's ratio are not within specified limits
!!
!! This routine builds the constitutive matrix for a linear elastic
!! material under plane strain conditions. The matrix has the following
!! form:
!!
!! D = ( emod / ((1+nu)*(1-2*nu)) ) * [ 1-nu nu 0 ]
!! [ nu 1-nu 0 ]
!! [ 0 0 0.5*(1-2*v) ]
! ------------------------------------------------------------------------
SUBROUTINE dmatrix_linear_elastic_plane_strain_exc_ (emod,nu, Dmat, exc)
DOUBLE PRECISION, INTENT(IN) :: emod,nu
TYPE(matrixT), INTENT(INOUT) :: Dmat
INTEGER, INTENT(OUT) :: exc
DOUBLE PRECISION :: one_minus_nu, one_minus_two_nu, coef
!> check that specified parameters are within limits
IF ( emod.LT.E_MIN .OR. emod.GT.E_MAX &
.OR. nu.LT.NU_MIN .OR. nu.GT.NU_MAX ) THEN
exc=EXCEED
CALL log_printLogMsg(exc,sdr)
RETURN
ELSE
exc=OK
END IF
!> call non-exception version
CALL dmatrix(emod,nu, Dmat)
END SUBROUTINE dmatrix_linear_elastic_plane_strain_exc_
! ************************************************************************
! LOCAL FUNCTIONS
! ************************************************************************
! none
END MODULE constitutive