ROSEBEM
For some theory look here.
BoundaryIntegralEquations.compute_taylor_integrals!
— Functioncompute_taylor_integrals!
Approximates the integral of freens3d!
, greens3d!
and freens3dk0!
multiplied by the shapefunction over single shape_function
, defined by coordinates
.
BoundaryIntegralEquations.taylor_assemble!
— Functiontaylor_assemble!(mesh::Mesh3d,k,in_sources,shape_function::Triangular;
M=0,fOn=true,gOn=true,cOn=true,m=3,n=3,progress=true,U=I)
Return:
From
: Contains the derivatives of theF
-matrix.Grom
: Contains the derivatives of theG
-matrix.C
: Contains the integral free term.
BoundaryIntegralEquations.apply_taylor_expansion
— Methodapply_taylor_expansion(Abasis,k,k0)
Assembling the Taylor series expansion with expansion wavenumber k0
at a new wavenumber k
and derivative matrices defined in Abasis
.
BoundaryIntegralEquations.apply_taylor_expansion
— Methodapply_taylor_expansion(Abasis,bbasis,k,k0)
Assembling the Taylor series expansion with expansion wavenumber k0
at a new wavenumber k
and derivative matrices defined in Abasis
and right-hand side defiend by bbasis
. \newline Returns the system matrix and right-hand side, Arom*x = brom
BoundaryIntegralEquations.arnoldi_basis
— Methodarnoldi_basis(A,b,q)
Computes the first q
Krylov vectors of the linear system A*x=b
using the Arnodli method. Returns a matrix V
whose columsn are equal to the Krylov vectors.
BoundaryIntegralEquations.scattering_krylov_basis
— Methodscattering_krylov_basis(mesh,klist;eps=1-4,n_gauss=3,verbose=true,P₀=1,progress=true)
Computes a reduced basis for the scattering of an incident wave. The basis is defined by computing the solution at the wavenumbers defined in klist
. The number of basis vectors at each wavenumber is chosen to be equal number of iterations of the gmres
algorithm. Returns:
U
: The reduced basis matrix.solutions
: Colums equal to the solution at each wavenumbers inklist
.qlist
: The number of Krylov vectors used at each wavenumber inklist
.