Skip to main content

Initiate

This method constructs an instance of BlockMatrixField.

Calling examples:

CALL Initiate( BlockMatrixField_ :: obj, ParameterList_ :: param, Domain_ :: dom )
CALL Initiate( &
& BlockMatrixField_ :: obj, &
& BlockMatrixField_ :: obj2 &
<& , Bool::copyFull> &
<& , Bool::copyStructure> &
<& , Bool :: usePointer> )
CALL Initiate( &
& BlockMatrixField_ :: obj, &
& ParameterList_ :: param, &
& DomainPointer_ :: dom)

Interface 1

INTERFACE
SUBROUTINE Initiate( obj, param, dom )
CLASS( BlockMatrixField_ ), 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 BlockMatrixField_. 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 1
  • timeCompo, INT, default is 1
  • fieldType, INT, default is FIELD_TYPE_NORMAL

Interface 2

INTERFACE
SUBROUTINE Initiate( obj, obj2, copyFull, copyStructure, &
& usePointer )
CLASS( BlockMatrixField_ ), INTENT( INOUT ) :: obj
CLASS( BlockMatrixField_ ), 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
info

This method is inherited from MatrixField

Initiate by copying from other fields. This routine initiates the obj MatrixField_ by copying contents from obj2, an instance of child class of AbstractField_.

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.
note

obj2 should be an instance of MatrixField_

Interface 3

INTERFACE
SUBROUTINE Initiate(obj, param, dom)
CLASS(BlockMatrixField_), INTENT(INOUT) :: obj
TYPE(ParameterList_), INTENT(IN) :: param
TYPE(DomainPointer_), TARGET, INTENT(IN) :: dom(:)
END SUBROUTINE Initiate
END INTERFACE
  • The matrix has a block struture, wherein, col and rows corresponds to the different physical variables.

The rectan