Skip to main content

AbstractMaterialModel

AbstractMatrialModel_ is an abstract class for modeling the behavior of solids, fluids, porous materials, etc.

Structure

The header of AbstractMaterialModel_ is given below

TYPE, ABSTRACT :: AbstractMaterialModel_
LOGICAL(LGT) :: isInitiated = .FALSE.
TYPE(String) :: name

AbstractMaterialModel_ has following subclasses.

  • AbstractSolidMechanicsModel_
  • AbstractPoroMechanicsModel_
  • AbstractFluidMechanicsModel_

Methods

For a concrete implementation of AbstractMaterialModel_ one has to implement the following methods.

CheckEssentialParam

ABSTRACT INTERFACE
SUBROUTINE checkEssentialParam( obj, param )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( IN ) :: obj
TYPE( ParameterList_ ), INTENT( IN ) :: param
END SUBROUTINE checkEssentialParam
END INTERFACE

Initiate

ABSTRACT INTERFACE
SUBROUTINE Initiate( obj, param )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( INOUT ) :: obj
TYPE( ParameterList_ ), INTENT( IN ) :: param
END SUBROUTINE Initiate
END INTERFACE

Deallocate

ABSTRACT INTERFACE
SUBROUTINE Deallocate( obj )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( INOUT ) :: obj
END SUBROUTINE Deallocate
END INTERFACE

Import

ABSTRACT INTERFACE
SUBROUTINE Import( obj, hdf5, group )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( INOUT ) :: obj
TYPE( HDF5File_ ), INTENT( INOUT ) :: hdf5
CHARACTER( LEN = * ), INTENT( IN ) :: group
END SUBROUTINE Import
END INTERFACE

Export

ABSTRACT INTERFACE
SUBROUTINE Export( obj, hdf5, group )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( IN ) :: obj
TYPE( HDF5File_ ), INTENT( INOUT ) :: hdf5
CHARACTER( LEN = * ), INTENT( IN ) :: group
END SUBROUTINE Export
END INTERFACE

Display

ABSTRACT INTERFACE
SUBROUTINE Display( obj, msg, unitNo )
IMPORT
CLASS( AbstractMaterialModel_ ), INTENT( INOUT ) :: obj
CHARACTER( LEN = * ), INTENT( IN ) :: msg
INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: unitNo
END SUBROUTINE Display
END INTERFACE