# Manual

## FEM machines

`FinEtoolsVibInFluids.LaplBEM.Greens`

— Method`Greens(k, xsource, xfield)`

Compute.

`FinEtoolsVibInFluids.LaplBEM.allelxs`

— Method`allelxs(xyz, conn)`

Construct array of all surface panel coordinates.

`FinEtoolsVibInFluids.LaplBEM.allnormals`

— Method`allnormals(elxs)`

Construct array of all surface panel normals.

`FinEtoolsVibInFluids.LaplBEM.centroidareanormal!`

— Method`centroidareanormal!(c, n, x)`

Compute triangle centroid and normal and its area.

`FinEtoolsVibInFluids.LaplBEM.dGreensdn`

— Method`dGreensdn(xsource, xfield, n)`

We are assuming the normal to point INTO THE FLUID!

`FinEtoolsVibInFluids.LaplBEM.doublelayer!`

— Method`doublelayer!(A, xyz, conn, ir::IR) where {IR<:TriRule}`

Compute the double-layer matrix contribution.

Arguments

`A`

= matrix`xyz`

= array of coordinates of the nodes`conn`

= array of connectivities of the surface elements`ir`

= integration rule

The contribution is *added*to the matrix `A`

. This matrix is also returned for convenience.

`FinEtoolsVibInFluids.LaplBEM.singlelayer!`

— Method`singlelayer!(B, xyz, conn, iroffdiagonal::IR, irdiagonal::IR) where {IR<:TriRule}`

Compute the single-layer matrix contribution.

Arguments

`B`

= complex matrix`xyz`

= array of coordinates of the nodes`conn`

= array of connectivities of the surface elements`iroffdiagonal`

= integration rule for the off-diagonal terms`irdiagonal`

= integration rule for the diagonal terms

The contribution is *added*to the matrix `B`

. This matrix is also returned for convenience.

`FinEtoolsVibInFluids.LaplBEM.surfnml!`

— Method`surfnml!(n, J)`

Compute the surface normal. A lot of effort has been put into eliminating all allocations, because this function is called in the innermost loop.

`FinEtoolsVibInFluids.LaplBEM.tricntr!`

— Method`tricntr!(c, x)`

Compute triangle centroid.

`FinEtoolsVibInFluids.LaplBEM.trinml!`

— Method`trinml!(n, x)`

Compute triangle normal (NOT a unit normal, it has a length of twice the area of the triangle).

`FinEtoolsVibInFluids.LaplBEM.triunitnml!`

— Method`triunitnml!(n, x)`

Compute the UNIT triangle normal.