Contains module procedures associated with the abstract matrix term class
Getter for normalizationConst
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this |
Get explicit value for the term by crudely dotting each sparse row with the locally stored implicit variable vector in varCont
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont |
Getter for multConst
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this |
Get name of the evolved variable of this term
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this |
Getter for indexingData
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this |
Getter for rowData
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this |
Default row function. In general should use the passed variable container, row buffer, and matrix indexing data to provide values which is only a function of the row
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
real(kind=rk), | intent(inout), | dimension(:) | :: | rowVals | ||
type(MatrixTermIndexingData), | intent(in) | :: | indexingData |
Default column function. In general should provide values for each column
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
type(RealArray), | intent(inout), | dimension(:) | :: | colVals | ||
type(MatrixTermIndexingData), | intent(in) | :: | indexingData |
Default matrix entry calculation routine - loops over each row and applies calculateRows and colFun to variables in provided container
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont |
Setter for normalizationConst
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | norm |
Set variable names required by the row and column functions and find their indices in variable container
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(StringArray), | intent(in), | dimension(:) | :: | rowReqVars | ||
type(StringArray), | intent(in), | dimension(:) | :: | colReqVars | ||
type(VariableContainer), | intent(in) | :: | varCont |
Set evolved (row) and implicit (column) variable names, and check if evolved variable is stationary using varCont
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | rowVarName | |||
character(len=*), | intent(in) | :: | colVarName | |||
type(VariableContainer), | intent(in) | :: | varCont |
Initialize row data objects based on a set of evolved global coordinates, the row/col var name, and a function that returns column coordinates given a row coordinate input. Requires a reference Indexing object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
integer(kind=ik), | intent(in), | dimension(:,:) | :: | rowCoords | ||
procedure(coordMapping) | :: | rowToColMapping | ||||
type(Indexing), | intent(in) | :: | indexingObj |
Add this term's row data to a PETSc preallocation object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(PETScPreallocationData), | intent(inout) | :: | petscPreallocData |
Add this term's row data to a petsc preallocation object in PETSc controller
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this | |||
type(PETScController), | intent(inout) | :: | petscCont |
Add this term's row values to a petsc matrix object in PETSc controller, multiplied by mult. If evolved variable is stationary mult is ignored and set to -1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(in) | :: | this | |||
type(PETScController), | intent(inout) | :: | petscCont | |||
real(kind=rk), | intent(in) | :: | mult | |||
integer(kind=ik), | intent(in), | optional | :: | petscGroup |
Setter for multConst
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(RealArray), | intent(in), | dimension(:) | :: | multConst |
Set whether the matrix is fixed -> only calculated once
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
logical, | intent(in) | :: | isFixed |
Set whether the matrix has a non-trivial row function
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
logical, | intent(in) | :: | nontriv |
Set whether the matrix has a non-trivial col function
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
logical, | intent(in) | :: | nontriv |
Default matrix term update, call matrixTermUpdate
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
class(ModelboundData), | intent(in), | optional | :: | modelData | ||
class(ModelSurrogate), | intent(in), | optional | :: | hostModel |
Default MatrixTerm updateMatTerm function - does nothing
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(MatrixTerm), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
type(MatrixTermIndexingData), | intent(in) | :: | indexingData | |||
class(ModelboundData), | intent(in), | optional | :: | modelData | ||
class(ModelSurrogate), | intent(in), | optional | :: | hostModel |