Solvers usage¶
Environment variables¶
Variable |
Description |
Default value |
---|---|---|
|
Out-Of-Core folder |
|
|
OpenMP threads number |
1 |
|
MKL threads number |
1 |
Variable |
Description |
Default value |
---|---|---|
|
HMat threads number |
all cores |
|
Available memory in MiB |
55% of physical memory |
|
Disable Out-Of-Core |
no |
Variable |
Description |
Default value |
---|---|---|
|
Disable thread binding |
enabled |
|
Out-Of-Core folder |
|
anadel¶
job
Compute degrees of freedom
![digraph anadel {
rankdir=LR;
node [shape = note] unv, d01, d01_h;
node [shape = box] anadel;
unv -> anadel;
anadel -> d01;
anadel -> d01_h;
}](_images/graphviz-e7e6d4fdd83d0d1640a6ed67205f1750dc6ae8ff.png)
Examples¶
Run anadel
anadel mesh.unv 4
Run anadel on compressed mesh
anadel mesh.unv.gz 4
Run anadel with low frequency option
anadel --bf mesh.unv 4
Override default units (meter) or unv units
anadel --units=mm mesh.unv 4
Define group for elements in no group
anadel --defaultgroup <group> mesh.unv 4
metanadel¶
job
Compute degrees of freedom for Layer formulation
Note
We assume anadel is in the PATH
.
![digraph metanadel {
rankdir=LR;
node [shape = note] unv, d01;
node [shape = box] metanadel;
node [shape = note, label="d01h.xml"] d01_hxml;
unv -> metanadel;
metanadel -> d01;
metanadel -> d01_hxml;
}](_images/graphviz-0bace381c8c4fbc9d17b13c4744727738e125cc4.png)
Examples¶
Get help
metanadel anadel --help
Run metanadel
metanadel anadel mesh.unv mesh.d01
Run metanadel on compressed mesh
metanadel anadel mesh.unv.gz mesh.d01.gz
Run metanadel with low frequency option
metanadel anadel --bf mesh.unv.gz mesh.d01.gz
Override default units (meter) or unv units
metanadel anadel --units=mm mesh.unv.gz mesh.d01.gz
Define group for elements in no group
metanadel anadel --default-group <group> mesh.unv.gz mesh.d01.gz
calcvp¶
job
Compute eigenvalues for rectangular waveguides.
Warning
This stage will modify the p01
file in place.
![digraph metanadel {
rankdir=LR;
node [shape = note] p01;
node [shape = box] calcvp;
node [shape = note] dat;
p01 -> calcvp -> p01;
calcvp -> dat;
}](_images/graphviz-e840918ed198bea7348c97188b01508147e650ea.png)
Examples¶
calcvp --p01 basename.p01
modes¶
job
Compute modes on modal surfaces
![digraph metanadel {
rankdir=LR;
node [shape = note] p01;
node [shape = box] modes;
node [shape = record, label="diff1|...|diffN"] diff;
node [shape = record, label="inc1|...|incN"] inc;
p01 -> modes;
modes -> diff;
modes -> inc;
}](_images/graphviz-73e956f378be554d08ea82cebc808658308b4a96.png)
Examples¶
modes --p01 basename.p01
elfipole¶
job
Solve BEM problem
![digraph elfipole {
rankdir=LR;
node [shape = note] p01, d01, res, r01_h;
node [shape = box] elfipole;
node [shape = record, label="c01|f01|i01|j01|n01|s01"] x01;
p01 -> elfipole;
d01 -> elfipole;
elfipole -> res;
elfipole -> r01_h;
elfipole -> x01;
}](_images/graphviz-0397be16526945438b54e3216cda91de7efe1c04.png)
Warning
Some distributions of ASERIS-BE provides elfipole with the legacy name AS_ELFIP_FMM.
Examples¶
Display version and exit
elfipole --version
Examples: general options¶
Default direct solver
elfipole --p01 basename.p01
Use single precision
elfipole --p01 basename.p01 --cprec
Define environment variables
elfipole --p01 basename.p01 --putenv ENVVAR=value [--putenv ENVAR=value [...]]
Examples: low frequency optimizations¶
The low frequency model generated by anadel or
metanadel with the --bf
option is sufficient for the
numerical stabilization. You can use the following options for additional
optimization.
Warning
These options require a low frequency model.
Eddy current simulation
elfipole --p01 basename.p01 --bfh
elfipole --p01 basename.p01 --bfeh
Examples: FMM¶
Block GMRES iterative solver with FMM acceleration (aka “FMM” solver)
elfipole --p01 basename.p01 --fmm
FMM solver with high accuracy (slower)
elfipole --p01 basename.p01 --fmm --high
FMM solver with low accuracy (faster)
elfipole --p01 basename.p01 --fmm --low
Warning
The FMM solver is not compatible with a low frequency model.
Examples: H-matrix¶
Direct HMat solver with default threshold (epsilon=5e-4)
elfipole --p01 basename.p01 --hmat
Change assembly and compression thresholds
elfipole --p01 basename.p01 --hmat --hmat-eps-assemb 1e-4 --hmat-eps-recompr 1e-4
Use HMat to compress the Right-Hand-Side
elfipole --p01 basename.p01 --hmat --mat-rhs
Note
RHS compression is available for plane waves, dipoles and punctual sources
Set different assembly and compression tolerances for the impedance matrix and the RHS
elfipole --p01 basename.p01 --hmat --mat-rhs \
--hmat-eps-assemb 1e-4 --hmat-eps-recompr 1e-4 \
--hmat-rhs-eps-assemb 1e-5 --hmat-rhs-eps-recompr 1e-5
PoR¶
job
Radiate and Project (\(P \circ R\))
![digraph por {
rankdir=LR;
node [shape = note] p01, d01_R, d01_P, res_R, res_P;
node [shape = box] PoR;
p01 -> PoR;
d01_R -> PoR;
res_R -> PoR;
d01_P -> PoR;
PoR -> res_P;
}](_images/graphviz-42605894b48511a4f970167202a785cbec3ca91d.png)
Examples¶
Run PoR
PoR --p01 basename.p01
Use single precision
PoR --p01 basename.p01 --cprec
Use FMM product for acceleration
PoR --p01 basename.p01 --fmm
coucha¶
job
Compute current and charge density
![digraph coucha {
rankdir=LR;
node [shape = note] p16, p01, d01, res;
node [shape = box] coucha;
node [shape = note] r16, vtu;
p16 -> coucha;
p01 -> coucha;
d01 -> coucha;
res -> coucha;
coucha -> r16;
coucha -> vtu;
}](_images/graphviz-cecbeb77d79fe54cdc307ffc6444ae8538c941f0.png)
Examples¶
Run coucha
coucha --p16 basename.p16
Use single precision
coucha --p16 basename.p16 --cprec
proche¶
job
Compute near field
![digraph proche {
rankdir=LR;
node [shape = note] p17, p01, d01, res;
node [shape = box] proche;
node [shape = note] r17, vtu;
p17 -> proche;
p01 -> proche;
d01 -> proche;
res -> proche;
proche -> r17;
proche -> vtu;
}](_images/graphviz-45905b1c23c6f3dfdc74a35eda3889e475e59923.png)
Examples¶
Run proche
proche --p17 basename.p17
Use single precision
proche --p17 basename.p17 --cprec
Consider only currents from one medium (here medium 2)
proche --p17 basename.p17 --milieu 2
Use FMM product for acceleration
proche --p17 basename.p17 --fmm
Warning
Do not use --fmm
with a low frequency solution
anten¶
job
Compute far field
![digraph anten {
rankdir=LR;
node [shape = note] p18, p01, d01, res;
node [shape = box] anten;
node [shape = note] r18, diag;
p18 -> anten;
p01 -> anten;
d01 -> anten;
res -> anten;
anten -> r18;
anten -> diag;
}](_images/graphviz-4d707b82ffd5e7eb0fdd5162af6184dd4fac1221.png)
Examples¶
Run anten
anten --p18 basename.p18
Use single precision
anten --p18 basename.p18 --cprec
Use FMM product for acceleration
anten --p18 basename.p18 --fmm
Warning
Do not use --fmm
with a low frequency solution
huygens¶
job
Manipulate Huygens box data
The huygens
module is a pre- and post-processing tool that has the following main stages
import
![digraph anten {
rankdir=LR;
node [shape = note] xml;
node [shape = note] bin;
node [shape = box, label="huygens import"] import;
xml -> import;
import -> bin;
}](_images/graphviz-256936736e5653c9658ed5f1053e7b054f239bea.png)
export
![digraph anten {
rankdir=LR;
node [shape = note] bin;
node [shape = note] unv;
node [shape = note] vtu;
node [shape = note] csv;
node [shape = note] power;
node [shape = note] elfipole;
node [shape = box, label="huygens export"] export;
bin -> export;
export -> unv;
export -> vtu;
export -> csv;
export -> power;
export -> elfipole;
}](_images/graphviz-e4324dc5a2a0db04d3bf979f8d036e3f0e82e335.png)
match
![digraph anten {
rankdir=LR;
node [shape = note] bin;
node [shape = note] d01;
node [shape = note] xml;
node [shape = note] res;
node [shape = box, label="huygens match"] match;
bin -> match;
d01 -> match;
xml -> match;
match -> res;
}](_images/graphviz-a2edfc67f447e748f15a471ee72172f1c62852de.png)
coupling
![digraph anten {
rankdir=LR;
node [shape = note] d01;
node [shape = note] res1;
node [shape = note] res2;
node [shape = note] csv;
node [shape = box, label="huygens coupling"] coupling;
d01 -> coupling;
res1 -> coupling;
res2 -> coupling;
coupling -> csv;
}](_images/graphviz-993513087654a977785e684759c42e42998d70d4.png)
Examples¶
Import EM field box from various formats
huygens import input-description.xml --output mysource.bin
Export the Huygens mesh to be merged with the 3D model
huygens export mysource.bin --unv mymesh.unv
Match equivalent currents on the placed Huygens box (after anadel
and before PoR
stage)
huygens match mysource.bin myhuygens.d01 --xml solid-transformation.xml --res myhuygens.res
Compute coupling with another Huygens antenna (after elfipole
stage)
huygens coupling myhuygens.d01 myhuygens.res another-antenna-field.res