The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
thin_wall_hodlr.F90 File Reference
#include "local.h"

Data Types

type  cmat_container
 Needs docs. More...
type  oft_tw_block
 Needs docs. More...
type  oft_tw_hodlr_bjpre
 Complex block-Jacobi preconditioner for ThinCurr HODLR matrices. More...
type  oft_tw_hodlr_op
 Needs docs. More...
type  oft_tw_hodlr_rbjpre
 Real block-Jacobi preconditioner for ThinCurr HODLR matrices. More...
type  oft_tw_level
 Needs docs. More...
type  rmat_container
 Needs docs. More...

Modules

module  thin_wall_hodlr
 Hierarchical Off-Diagonal Low Rank matrix approximation functionality for ThinCurr.

Functions/Subroutines

subroutine aca_approx (isparse, ilevel, iblock, jblock, dim, tol, size_out)
subroutine aca_approx (isparse, tol, size_out)
recursive subroutine bjprecond_apply (self, u, g)
 Precondition a linear system using a Block-Jacobi method (complex).
subroutine bjprecond_delete (self)
 Destroy Block-Jacobi preconditioner and deallocate all internal storage.
subroutine clone_tree (in_tree, out_tree)
subroutine compress_aca (isparse, ilevel, iblock, jblock, dim, tol, size_out)
subroutine compress_aca (isparse, tol, size_out)
subroutine compress_block (isparse, iblock, jblock, dim, tol, size_out)
subroutine compress_block (isparse, tol, size_out)
recursive subroutine count_levels (leaf, depth)
recursive subroutine fill_levels (leaf, depth, parent)
subroutine get_qr (mat, q, r)
subroutine load_from_file ()
integer(4) function max_masked (vals, mask)
recursive subroutine rbjprecond_apply (self, u, g)
 Precondition a linear system using a Block-Jacobi method (real).
subroutine rbjprecond_delete (self)
 Destroy Block-Jacobi preconditioner and deallocate all internal storage.
subroutine read_from_file ()
subroutine save_to_file ()
recursive subroutine subdivide_leaf (leaf, depth)
subroutine tw_compute_bops_block (self, bop, row_block, col_block, dir)
 Needs Docs.
subroutine tw_compute_bops_hole (self, bop, bop_dr)
 Needs Docs.
subroutine tw_compute_lmatblock (row_obj, col_obj, lmat, row_block, col_block)
 Compute mutual inductance matrix between two thin-wall models.
subroutine tw_compute_lmathole (row_obj, col_obj, lmat)
 Compute mutual inductance matrix between two thin-wall models.
subroutine tw_hodlr_bapply (self, a, bx, by, bz)
 Apply the matrix to a field.
subroutine tw_hodlr_bcompute (self, save_file)
 Needs Docs.
subroutine tw_hodlr_lapply (self, a, b)
 Apply the matrix to a field.
subroutine tw_hodlr_lassemble (self, diag)
 Needs docs.
subroutine tw_hodlr_lcompute (self, save_file)
 Needs Docs.
subroutine tw_hodlr_setup (self, required)
 Needs Docs.
subroutine tw_part_mesh (self, leaf_target, nlevels, levels)
 Needs Docs.

Function/Subroutine Documentation

◆ aca_approx() [1/2]

subroutine aca_approx ( integer(4), intent(in) isparse,
integer(4), intent(in) ilevel,
integer(4), intent(in) iblock,
integer(4), intent(in) jblock,
integer(4), intent(in) dim,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ aca_approx() [2/2]

subroutine aca_approx ( integer(4), intent(in) isparse,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ clone_tree()

subroutine clone_tree ( type(tw_oct_tree), intent(inout) in_tree,
type(tw_oct_tree), intent(inout) out_tree )
private

◆ compress_aca() [1/2]

subroutine compress_aca ( integer(4), intent(in) isparse,
integer(4), intent(in) ilevel,
integer(4), intent(in) iblock,
integer(4), intent(in) jblock,
integer(4), intent(in) dim,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ compress_aca() [2/2]

subroutine compress_aca ( integer(4), intent(in) isparse,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ compress_block() [1/2]

subroutine compress_block ( integer(4), intent(in) isparse,
integer(4), intent(in) iblock,
integer(4), intent(in) jblock,
integer(4), intent(in) dim,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ compress_block() [2/2]

subroutine compress_block ( integer(4), intent(in) isparse,
real(8), intent(in) tol,
integer(8), intent(out) size_out )
private

◆ count_levels()

recursive subroutine count_levels ( type(tw_oct_tree), intent(inout) leaf,
integer(4), intent(in) depth )
private

◆ fill_levels()

recursive subroutine fill_levels ( type(tw_oct_tree), intent(inout) leaf,
integer(4), intent(in) depth,
integer(4), intent(in) parent )
private

◆ load_from_file()

subroutine load_from_file
private

◆ max_masked()

integer(4) function max_masked ( real(8), dimension(:), intent(in) vals,
logical, dimension(:), intent(in) mask )
private

◆ read_from_file()

subroutine read_from_file
private

◆ save_to_file()

subroutine save_to_file
private

◆ subdivide_leaf()

recursive subroutine subdivide_leaf ( type(tw_oct_tree), intent(inout), target leaf,
integer(4), intent(in) depth )
private