Encapsulate material properties and equations of state
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=psb_dpk_), | private | :: | dtemp | ||||
integer, | private | :: | ilaw(4) | ||||
real(kind=psb_dpk_), | private, | allocatable | :: | lambda(:) | elastic modulus |
||
integer, | private | :: | mat_id | ||||
character(len=name_len), | private | :: | mat_type | ||||
real(kind=psb_dpk_), | private, | allocatable | :: | mu(:) | viscosity |
||
character(len=name_len), | private | :: | name | ||||
real(kind=psb_dpk_), | private, | allocatable | :: | rho(:) | density |
||
real(kind=psb_dpk_), | private, | allocatable | :: | sh(:) | shear modulus |
||
character(len=1), | private | :: | state | ||||
real(kind=psb_dpk_), | private | :: | tmax | ||||
real(kind=psb_dpk_), | private | :: | tmin |
Global Constructor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(material), | intent(out) | :: | mat | |||
character(len=*), | intent(in) | :: | input_file | |||
integer, | intent(in) | :: | block_id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(material), | intent(inout) | :: | mat |
Getter
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(material), | intent(in) | :: | mat |
Getter
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(material), | intent(in) | :: | mat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(material), | intent(in) | :: | mat |
TYPE material
!! Encapsulate material properties and equations of state
PRIVATE
!
! From input file ...
CHARACTER(len=name_len) :: name
CHARACTER(len=name_len) :: mat_type
INTEGER :: ilaw(4)
INTEGER :: mat_id
!
! ... and from DB
CHARACTER(len=1) :: state
REAL(psb_dpk_) :: dtemp, tmin, tmax
REAL(psb_dpk_), ALLOCATABLE :: rho(:) !! density
REAL(psb_dpk_), ALLOCATABLE :: mu(:) !! viscosity
REAL(psb_dpk_), ALLOCATABLE :: lambda(:) !! elastic modulus
REAL(psb_dpk_), ALLOCATABLE :: sh(:) !! shear modulus
CONTAINS
PROCEDURE :: create_material, free_material ! Constructor/Destructor
PROCEDURE, PRIVATE :: get_material_name, get_material_id ! Getter
GENERIC, PUBLIC :: name_ => get_material_name
GENERIC, PUBLIC :: mat_id_ => get_material_id
PROCEDURE, PRIVATE :: nemo_material_sizeof
GENERIC, PUBLIC :: nemo_sizeof => nemo_material_sizeof
END TYPE material