Manual
FEM machines
FinEtoolsVibInFluids.LaplBEM.Greens
— MethodGreens(k, xsource, xfield)
Compute.
FinEtoolsVibInFluids.LaplBEM.allelxs
— Methodallelxs(xyz, conn)
Construct array of all surface panel coordinates.
FinEtoolsVibInFluids.LaplBEM.allnormals
— Methodallnormals(elxs)
Construct array of all surface panel normals.
FinEtoolsVibInFluids.LaplBEM.centroidareanormal!
— Methodcentroidareanormal!(c, n, x)
Compute triangle centroid and normal and its area.
FinEtoolsVibInFluids.LaplBEM.dGreensdn
— MethoddGreensdn(xsource, xfield, n)
We are assuming the normal to point INTO THE FLUID!
FinEtoolsVibInFluids.LaplBEM.doublelayer!
— Methoddoublelayer!(A, xyz, conn, ir::IR) where {IR<:TriRule}
Compute the double-layer matrix contribution.
Arguments
A
= matrixxyz
= array of coordinates of the nodesconn
= array of connectivities of the surface elementsir
= integration rule
The contribution is addedto the matrix A
. This matrix is also returned for convenience.
FinEtoolsVibInFluids.LaplBEM.singlelayer!
— Methodsinglelayer!(B, xyz, conn, iroffdiagonal::IR, irdiagonal::IR) where {IR<:TriRule}
Compute the single-layer matrix contribution.
Arguments
B
= complex matrixxyz
= array of coordinates of the nodesconn
= array of connectivities of the surface elementsiroffdiagonal
= integration rule for the off-diagonal termsirdiagonal
= integration rule for the diagonal terms
The contribution is addedto the matrix B
. This matrix is also returned for convenience.
FinEtoolsVibInFluids.LaplBEM.surfnml!
— Methodsurfnml!(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!
— Methodtricntr!(c, x)
Compute triangle centroid.
FinEtoolsVibInFluids.LaplBEM.trinml!
— Methodtrinml!(n, x)
Compute triangle normal (NOT a unit normal, it has a length of twice the area of the triangle).
FinEtoolsVibInFluids.LaplBEM.triunitnml!
— Methodtriunitnml!(n, x)
Compute the UNIT triangle normal.