The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines
thin_wall_hodlr Module Reference

Detailed Description

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

Authors
Chris Hansen
Date
Feb 2024

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

Functions/Subroutines

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 get_qr (mat, q, r)
 
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 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

◆ bjprecond_apply()

recursive subroutine bjprecond_apply ( class(oft_tw_hodlr_bjpre), intent(inout)  self,
class(oft_cvector), intent(inout)  u,
class(oft_cvector), intent(inout)  g 
)

Precondition a linear system using a Block-Jacobi method (complex)

Parameters
[in,out]selfSolver object
[in,out]uGuess/Solution field
[in,out]gRHS/Residual field

◆ bjprecond_delete()

subroutine bjprecond_delete ( class(oft_tw_hodlr_bjpre), intent(inout)  self)

Destroy Block-Jacobi preconditioner and deallocate all internal storage.

◆ get_qr()

subroutine get_qr ( real(8), dimension(:,:), intent(in)  mat,
real(8), dimension(:,:), intent(out), allocatable  q,
real(8), dimension(:,:), intent(out), allocatable  r 
)

◆ rbjprecond_apply()

recursive subroutine rbjprecond_apply ( class(oft_tw_hodlr_rbjpre), intent(inout)  self,
class(oft_vector), intent(inout)  u,
class(oft_vector), intent(inout)  g 
)

Precondition a linear system using a Block-Jacobi method (real)

Parameters
[in,out]selfSolver object
[in,out]uGuess/Solution field
[in,out]gRHS/Residual field

◆ rbjprecond_delete()

subroutine rbjprecond_delete ( class(oft_tw_hodlr_rbjpre), intent(inout)  self)

Destroy Block-Jacobi preconditioner and deallocate all internal storage.

◆ tw_compute_bops_block()

subroutine tw_compute_bops_block ( type(tw_type), intent(inout)  self,
real(8), dimension(:,:), intent(out)  bop,
type(oft_tw_block), intent(in)  row_block,
type(oft_tw_block), intent(in)  col_block,
integer(4), intent(in)  dir 
)

Needs Docs.

Parameters
[out]bopMagnetic field evaluation matrix
[in]row_blockBlock of rows to compute
[in]col_blockBlock of columns to compute

◆ tw_compute_bops_hole()

subroutine tw_compute_bops_hole ( type(tw_type), intent(inout)  self,
real(8), dimension(:,:,:), intent(out)  bop,
real(8), dimension(:,:,:), intent(out)  bop_dr 
)

Needs Docs.

Parameters
[out]bopMagnetic field evaluation matrix
[out]bop_drMagnetic field evaluation matrix

◆ tw_compute_lmatblock()

subroutine tw_compute_lmatblock ( type(tw_type), intent(in)  row_obj,
type(tw_type), intent(in)  col_obj,
real(8), dimension(:,:), intent(out)  lmat,
type(oft_tw_block), intent(in)  row_block,
type(oft_tw_block), intent(in)  col_block 
)

Compute mutual inductance matrix between two thin-wall models.

Parameters
[in]row_objThin-wall model object for rows
[in]col_objThin-wall model object for columns
[in]row_blockBlock of rows to compute
[in]col_blockBlock of columns to compute
[out]lmatMutual inductance matrix

◆ tw_compute_lmathole()

subroutine tw_compute_lmathole ( type(tw_type), intent(in)  row_obj,
type(tw_type), intent(in)  col_obj,
real(8), dimension(:,:), intent(inout), pointer, contiguous  lmat 
)

Compute mutual inductance matrix between two thin-wall models.

Parameters
[in]row_objThin-wall model object for rows
[in]col_objThin-wall model object for columns
[in,out]lmatMutual inductance matrix

◆ tw_hodlr_bapply()

subroutine tw_hodlr_bapply ( class(oft_tw_hodlr_op), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_vector), intent(inout)  bx,
class(oft_vector), intent(inout)  by,
class(oft_vector), intent(inout)  bz 
)

Apply the matrix to a field.

b = self * a

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized matrices.
Parameters
[in]aSource field
[out]bResult of matrix product

◆ tw_hodlr_bcompute()

subroutine tw_hodlr_bcompute ( class(oft_tw_hodlr_op), intent(inout)  self,
character(len=*), intent(in), optional  save_file 
)

Needs Docs.

◆ tw_hodlr_lapply()

subroutine tw_hodlr_lapply ( class(oft_tw_hodlr_op), 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

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized matrices.
Parameters
[in]aSource field
[out]bResult of matrix product

◆ tw_hodlr_lassemble()

subroutine tw_hodlr_lassemble ( class(oft_tw_hodlr_op), intent(inout)  self,
class(oft_vector), intent(inout), optional, target  diag 
)

Needs docs.

◆ tw_hodlr_lcompute()

subroutine tw_hodlr_lcompute ( class(oft_tw_hodlr_op), intent(inout)  self,
character(len=*), intent(in), optional  save_file 
)

Needs Docs.

◆ tw_hodlr_setup()

subroutine tw_hodlr_setup ( class(oft_tw_hodlr_op), intent(inout)  self,
logical, intent(in)  required 
)

Needs Docs.

◆ tw_part_mesh()

subroutine tw_part_mesh ( type(tw_type), intent(inout)  self,
integer(4), intent(in)  leaf_target,
integer(4), intent(out)  nlevels,
type(oft_tw_level), dimension(:), intent(out), pointer  levels 
)

Needs Docs.

Need docs

Need docs