The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Abstract operator interfaces and native matrix implementations.
Abstract interface definitions
Native vector implementations
Data Types | |
type | oft_diagmatrix |
Diagonal matrix class. More... | |
type | oft_mf_matrix |
Wrapper matrix for matrix-free Jacobians. More... | |
type | oft_noop_cmatrix |
Needs docs. More... | |
type | oft_noop_matrix |
Needs docs. More... | |
type | oft_sum_cmatrix |
Sum matrix class M = beta*J + alam*K. More... | |
type | oft_sum_matrix |
Sum matrix class M = beta*J + alam*K. More... | |
Functions/Subroutines | |
subroutine | cnoop_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | cnoop_apply_comp (self, a, b) |
Apply the matrix to a field. | |
subroutine | cnoop_apply_real (self, a, b) |
Apply the matrix to a field. | |
subroutine | cnoop_applyt (self, a, b) |
Apply the matrix to a field. | |
subroutine | cnoop_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | cnoop_delete (self) |
Delete matrix. | |
subroutine | cnoop_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | cnoop_zero (self) |
Zero all entries in matrix. | |
subroutine | cnoop_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine, public | create_diagmatrix (self, a) |
Needs docs. | |
subroutine | diagmat_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | diagmat_apply_comp (self, a, b) |
Apply the matrix to a field. | |
subroutine | diagmat_apply_real (self, a, b) |
Apply the matrix to a field. | |
subroutine | diagmat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | diagmat_delete (self) |
Delete matrix. | |
subroutine | diagmat_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | diagmat_zero (self) |
Zero all entries in matrix. | |
subroutine | diagmat_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
logical function | diagmatrix_cast (self, source) |
Cast a matrix object to a oft_diagmatrix. | |
subroutine | mf_mat_apply_real (self, a, b) |
Compute matrix vector product. | |
subroutine | mf_mat_delete (self) |
Cleanup internal storage and reset defaults. | |
subroutine | mf_mat_setup (self, a, f, utyp) |
Setup matrix-free Jacobian operator. | |
subroutine | mf_mat_update (self, a) |
Update linearization point for matrix-free Jacobian. | |
subroutine | noop_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | noop_apply_comp (self, a, b) |
Apply the matrix to a field. | |
subroutine | noop_apply_real (self, a, b) |
Apply the matrix to a field. | |
subroutine | noop_applyt (self, a, b) |
Apply the matrix to a field. | |
subroutine | noop_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | noop_delete (self) |
Delete matrix. | |
subroutine | noop_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | noop_zero (self) |
Zero all entries in matrix. | |
subroutine | noop_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine | sum_cmat_apply_comp (self, a, b) |
Compute matrix vector product. | |
subroutine | sum_cmat_apply_real (self, a, b) |
Compute matrix vector product (real) | |
subroutine | sum_cmat_applyt_comp (self, a, b) |
Compute matrix vector product for matrix transpose. | |
subroutine | sum_cmat_applyt_real (self, a, b) |
Compute matrix vector product for matrix transpose (real) | |
subroutine | sum_cmat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | sum_mat_apply_comp (self, a, b) |
Compute matrix vector product (complex) | |
subroutine | sum_mat_apply_real (self, a, b) |
Compute matrix vector product. | |
subroutine | sum_mat_applyt_comp (self, a, b) |
Compute matrix vector product for matrix transpose (complex) | |
subroutine | sum_mat_applyt_real (self, a, b) |
Compute matrix vector product for matrix transpose. | |
subroutine | sum_mat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
logical function | sum_matrix_cast (self, source) |
Cast a matrix object to a sum_matrix_cast. | |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to add [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = selfT * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified rows.
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
subroutine, public create_diagmatrix | ( | class(oft_matrix), intent(inout), pointer | self, |
class(oft_vector), intent(inout) | a | ||
) |
Needs docs.
|
private |
Add values to a matrix.
[in,out] | self | Matrix object |
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | self | Matrix object |
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified rows.
[in,out] | self | Matrix object |
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Cast a matrix object to a oft_diagmatrix.
The source matrix must be oft_diagmatrix or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source matrix to cast |
|
private |
Compute matrix vector product.
b = (selff(a) - selff0)/eps
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Cleanup internal storage and reset defaults.
[in,out] | self | Matrix object |
|
private |
Setup matrix-free Jacobian operator.
[in,out] | self | Matrix object |
[in,out] | a | Vector defining domain and range spaces |
[in] | f | Non-linear function defining the Jacobian |
[in,out] | utyp | Vector of "typical sizes" (optional) |
|
private |
Update linearization point for matrix-free Jacobian.
[in,out] | self | Matrix object |
[in,out] | a | New linearization point |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
subroutine noop_apply_real | ( | class(oft_noop_matrix), intent(inout) | self, |
class(oft_vector), intent(inout), target | a, | ||
class(oft_vector), intent(inout) | b | ||
) |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self^T * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified rows.
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Compute matrix vector product.
b = (selfbeta*selfJ + selfalam*selfK) * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product (real)
b = (selfbeta*selfJ + selfalam*selfK) * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product for matrix transpose.
b = selfbeta*selfJ^T + selfalam*selfK^T * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product for matrix transpose (real)
b = selfbeta*selfJ^T + selfalam*selfK^T * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | self | Matrix object |
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Compute matrix vector product (complex)
b = (selfbeta*selfJ + selfalam*selfK) * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product.
b = (selfbeta*selfJ + selfalam*selfK) * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product for matrix transpose (complex)
b = selfbeta*selfJ^T + selfalam*selfK^T * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Compute matrix vector product for matrix transpose.
b = selfbeta*selfJ^T + selfalam*selfK^T * a
[in,out] | self | Matrix object |
[in,out] | a | Vector object |
[in,out] | b | Result vector |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | self | Matrix object |
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Cast a matrix object to a sum_matrix_cast.
The source matrix must be sum_matrix_cast or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source matrix to cast |