Initiate
This method constructs an instance of AbstractMatrixField.
Calling examples:
CALL Initiate( AbstractMatrixField_ :: obj, ParameterList_ :: param, Domain_ :: dom )
CALL Initiate( &
& AbstractMatrixField_ :: obj, &
& AbstractMatrixField_ :: obj2 &
<& , Bool::copyFull> &
<& , Bool::copyStructure> &
<& , Bool :: usePointer> )
CALL Initiate( &
& AbstractMatrixField_ :: obj, &
& ParameterList_ :: param, &
& DomainPointer_ :: dom)
Interface
- Interface 1
- ܀ Examples
INTERFACE
SUBROUTINE Initiate( obj, param, dom )
CLASS( AbstractMatrixField_ ), INTENT( INOUT ) :: obj
TYPE( ParameterList_), INTENT( IN ) :: param
TYPE( Domain_ ), TARGET, INTENT( IN ) :: dom
END SUBROUTINE Initiate
END INTERFACE
This routine creates a square sparse matrix.
This routine initiates an instance of MatrixField_.
The options/arguments to initiate the matrix field are
contained inside param, which is an instance of ParameterList_.
In addition, Domain_ dom
is target to the pointer obj%domain
.
- Param contains both essential and optional parameters which are used in constructing the matrix field
- dom is a pointer to a domain, where we are interested in constructing the matrix
ESSENTIAL PARAMETERS are
name
This is name of field (char)matrixProp
, UNSYM, SYM (char)engine
OPTIONAL PARAMETERS
spaceCompo
, INT, default is 1timeCompo
, INT, default is 1fieldType
, INT, default is FIELD_TYPE_NORMAL
- Interface 2
- ܀ Examples
INTERFACE
SUBROUTINE Initiate( obj, obj2, copyFull, copyStructure, &
& usePointer )
CLASS( AbstractMatrixField_ ), INTENT( INOUT ) :: obj
CLASS( AbstractMatrixField_ ), INTENT( INOUT ) :: obj2
LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: copyFull
LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: copyStructure
LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: usePointer
END SUBROUTINE Initiate
END INTERFACE
Initiate by copying from other fields. This routine initiates the obj
MatrixField_ by copying contents from obj2
, an instance of child class of AbstractField_.
In this way we try to minimize the computation effort.
If copyFull, copyStructure, usePointer
are absent then this subroutine,
copies the value of the matrix from obj2 to obj.
At present, the routine works for copyFull=.TRUE., copyStructure=.TRUE., usePointer=.TRUE.
, which equivalent to the default behavior.
- TODO Add functionality for other options too.
obj2
should be an instance of MatrixField_
- Interface 3
- ܀ Examples
INTERFACE
SUBROUTINE Initiate(obj, param, dom)
CLASS(AbstractMatrixField_), INTENT(INOUT) :: obj
TYPE(ParameterList_), INTENT(IN) :: param
TYPE(DomainPointer_), TARGET, INTENT(IN) :: dom(:)
END SUBROUTINE Initiate
END INTERFACE
- This routine can only construct a rectangle matrix.
- The matrix has a block struture, wherein, col and rows corresponds to the different physical variables.
- Total number of physical variables can be atmost 2.
The rectan