Targets in Montjoie

The programs that can be compiled are placed in the directory src/Program. We distinguish programs understandable for beginners, advanced or expert users, therefore the programs are scattered in the directories Beginner, Advanced and Expert. Programs related to mesh treatments, like the conversion of meshes, manipulations, or generations of meshes, are placed in the directory Mesh. Programs testing each class and each function of Montjoie are placed in directory Unit and can be launched automatically by executing the script unit_test.py. Other testing prorams are placed in directory Test. Programs related to piano and strings are located in the directory Corde. Finally programs testing the efficiency of different functions are located in the directory Perfo. All the compilation rules are present in the file Makefile.rules.mk. Here we give tables of all these rules :

Targets related to programs for beginners

Target name C++ file Aim of this program
claplace Beginner/laplace.cc Solves Poisson's equation with continuous finite element (2-D and 3-D)
chelm2D Beginner/helmholtz2D.cc Solves 2-D Helmholtz equation with continuous finite element
chelm3D Beginner/helmholtz3D.cc Solves 3-D Helmholtz equation with continuous finite element
cstatic_maxwell Beginner/static_maxwell.cc Solves steady Maxwell equations in 3-D with edge finite elements
cmaxwell3D Beginner/maxwell3D.cc Solves time-harmonic Maxwell equations in 3-D with edge finite elements
maxwell1D Beginner/maxwell1D.cc Solves time-domain Maxwell equations in 1-D with Kerr non-linearity
ctime3D Beginner/maxwell3D_time.cc Solves time-domain Maxwell equations in 3-D with edge finite elements
cacous2D Beginner/acous2D.cc Solves 2-D wave equation with continuous finite element
cacous3D Beginner/acous3D.cc Solves 3-D wave equation with continuous finite element
advection Beginner/advection.cc Solves time-domain (or time-harmonic) advection equation in 2-D or 3-D
charmonic_elas2D Beginner/harmonic_elastic2D.cc Solves time-harmonic elastodynamic equations in 2-D with continuous finite elements
charmonic_elas3D Beginner/harmonic_elastic3D.cc Solves time-harmonic elastodynamic equations in 3-D with continuous finite elements
celas2D Beginner/elastic2D.cc Solves time-domain elastodynamic equations in 2-D with continuous finite elements
celas3D Beginner/elastic3D.cc Solves time-domain elastodynamic equations in 3-D with continuous finite elements
caero2D Beginner/aero2D.cc Solves time-domain aeroacoustic equations in 2-D with discontinuous Galerkin method
caero3D Beginner/aero3D.cc Solves time-domain aeroacoustic equations in 3-D with discontinuous Galerkin method
charmonic_aero2D Beginner/harmonic_aero2D.cc Solves time-harmonic aeroacoustic equations in 2-D with discontinuous Galerkin method

Targets related to programs for advanced users

Target name C++ file Aim of this program
laplace Advanced/laplace.cc Solves Poisson's equation with continuous or discontinuous finite element (2-D and 3-D)
helm2D Advanced/helmholtz2D.cc Solves 2-D Helmholtz equation with continuous or discontinuous finite element
helm_div Beginner/helmholtz_sipg.cc Solves 2-D Helmholtz equation with H(div) formulation
helm3D Advanced/helmholtz3D.cc Solves 3-D Helmholtz equation with continuous or discontinuous finite element
helm_axi Advanced/helmholtz_axi.cc Solves 3-D Helmholtz equation in axisymmetric geometry with continuous finite element
helm_radial Beginner/helm_radial.cc Solves 3-D Helmholtz equation in radial geometry with continuous finite element
maxwell_axi Advanced/maxwell_axi.cc Solves time-harmonic Maxwell equations in axisymmetric domains with edge finite elements
maxwell2D Advanced/maxwell2D.cc Solves time-harmonic Maxwell equations in 2-D with various finite elements
static_maxwell Advanced/static_maxwell.cc Solves steady Maxwell equations in 2-D and 3-D with various finite elements
maxwell3D Advanced/maxwell3D.cc Solves time-harmonic Maxwell equations in 3-D with various finite elements
mode_maxwell Advanced/mode_maxwell.cc Finds eigenmodes of an electromagnetic open waveguide
time_maxwell Advanced/time_maxwell.cc Solves time-domain Maxwell equations in axisymmetric domains with edge finite elements
time3D Advanced/maxwell3D_time.cc Solves time-domain Maxwell equations in 3-D with various finite elements
acous2D Advanced/acous2D.cc Solves 2-D wave equation with continuous or discontinuous finite element
acous3D Advanced/acous3D.cc Solves 3-D wave equation with continuous or discontinuous finite element
harmonic_elas2D Advanced/harmonic_elastic2D.cc Solves time-harmonic elastodynamic equations in 2-D with continuous or discontinuous finite elements
harmonic_elas3D Advanced/harmonic_elastic3D.cc Solves time-harmonic elastodynamic equations in 3-D with continuous or discontinuous finite elements
elas2D Advanced/elastic2D.cc Solves time-domain elastodynamic equations in 2-D with continuous or discontinuous finite elements
elas3D Advanced/elastic3D.cc Solves time-domain elastodynamic equations in 3-D with continuous or discontinuous finite elements
reissner Advanced/reissner_mindlin.cc Solves Reissner-Minlin equations with continuous finite elements.
static_elastic Advanced/static_elastic3D.cc Finds eigenmodes of a 3-D structure (elastodynamics)
soundboard Advanced/soundboard.cc Finds eigenmodes of a thin plate (Reissner-Mindlin equations)
schrodinger1D Advanced/schrodinger1D.cc Solves 1-D non-linear schrodinger equation (non-linear optics)
schrodinger3D Expert/schrodinger3D.cc Solves 3-D non-linear schrodinger equation (non-linear optics)
aero2D Advanced/aero2D.cc Solves time-domain aeroacoustic equations in 2-D with discontinuous Galerkin method
galbrun Advanced/galbrun.cc Solves time-harmonic Galbrun's equations in 2-D with discontinuous Galerkin method
aero3D Advanced/aero3D.cc Solves time-domain aeroacoustic equations in 3-D with discontinuous Galerkin method
harmonic_aero2D Beginner/harmonic_aero2D.cc Solves time-harmonic aeroacoustic equations in 2-D with discontinuous Galerkin method
aero_axi Advanced/aero_axi.cc Solves time-harmonic Linearized Euler equations in axisymmetric geometry with discontinuous Galerkin method
galbrun_axi Advanced/galbrun_axi.cc Solves time-harmonic Galbrun's equations in axisymmetric geometry with discontinuous Galerkin method
vlasov Advanced/vlasov.cc Solves Vlasov-Maxwell equations in 2-D and 3-D with various finite elements
solution_helm Advanced/SolutionHelmholtz.cc Computes analytical solutions of Helmholtz equation for spherical layers.
solution Advanced/SolutionSphere.cc Computes analytical solutions of 3-D Maxwell's equations for spherical layers.
solution_disc Advanced/SolutionDisc.cc Computes analytical solutions of 2-D wave equation for circular layers.
migration Advanced/migration.cc Computes the image of a default with the reverse time migration method.

Targets related to programs for expert users

Target name C++ file Aim of this program
dispersion Expert/dispersion.cc Computes discrete dispersion relation for continuous or discontinuous elements
mode_pml Expert/mode_pml.cc Computes eigenmodes of an open problem (2-D Helmholtz equation)
mode1D Expert/mode_1D.cc Computes eigenmodes of an open problem (1-D Helmholtz equation)
mode2D Expert/mode2D.cc Computes eigenmodes of an open problem (2-D Helmholtz equation and 3-D Maxwell's equations)
inv_harmonic Expert/inverse_harmonic.cc Solves an inverse boundary value problem in time-harmonic domain
CellulairePeriodique Expert/CellulairePeriodique.cc Computes coefficients used to replace a periodic structure by an equivalent transmission condition (2-D Helmholtz)
CellulairePeriodique3D Expert/CellulairePeriodique3D.cc Computes coefficients used to replace a periodic structure by an equivalent transmission condition (3-D Maxwell)

Targets related to program testing

Target name C++ file Aim of this program
checkHcurl Test/check_finite_elementHcurl.cc Checks finite element classes for H(curl) (so called edge elements)
checkHdiv Test/check_finite_elementHdiv.cc Checks finite element classes for H(div) (so called facet elements)
checkHcurl2D Test/check_finite_elementEdge.cc Checks finite element classes for 2-D H(curl) (so called edge elements)
checkH1 Test/check_finite_element.cc Checks finite element classes for continuous finite elements
kdv Advanced/kdv.cc solves the KdV equation (and other Kdv-like equations) in 1-D
camass Advanced/camassa.cc solves the Camassa-Holm equation (and other Camassa-Holm-like equations) in 1-D
subdomain Test/iterative_subdomain.cc solves 2-D or 3-D Helmholtz equation with domain decomposition method

Targets related to programs for meshes

Target name C++ file Aim of this program
convert Mesh/convert2mesh.cc performs a conversion between two meshes (any supported format)
manipule Mesh/manipule.cc perfoms basic manipulations over 3-D meshes
manipule2D Mesh/manipule2D.cc perfoms basic manipulations over 2-D meshes
sym_mesh Mesh/sym_mesh.cc Generates a mesh by symmetrizing it with respect to Oxy, Oxz and/or Oyz.
per_mesh Mesh/periodize_mesh.cc Generates a mesh by periodicity in x, y, z, and/or theta.
tetmesh Mesh/tetmesh.cc Generates 3-D tetrahedral mesh by using Ghs3D/Gmsh.
add_circle Mesh/add_circle.cc Adds 2-D circular layers to a given mesh.
add_sphere Mesh/add_sphere.cc Adds 2-D spherical layers to a given mesh.

Targets related to various programs

Target name C++ file Aim of this program
vibro Advanced/vibro.cc solves the vibroacoustic equations (coupling between Reissner-Mindlin and 3-D acoustics)
fluid_structure Advanced/fluid_structure.cc solves fluid-structure interaction (coupling between 3-D elastodynamics and 3-D acoustics)
write_nodal Advanced/write_nodal_points.cc computes 3-D nodal points of an .ini file

Targets related to piano strings

Target name C++ file Aim of this program
multistringStiffLIN Corde/test_multistring.cc solves strings equations (stiff and linear)
multistringLIN Corde/test_multistring.cc solves strings equations (non-stiff and linear)
multistringStiffNL Corde/test_multistring.cc solves strings equations (stiff and non-linear)
multistringNL Corde/test_multistring.cc solves strings equations (non-stiff and non-linear)
PianoFluide Corde/PianoFluide.cc solves vibro-acoustic equations (modal expansion for the plate)
PianoStiffNL Corde/CouplagePiano.cc solves piano problem (stiff and non-linear strings)
PianoStiffLIN Corde/CouplagePiano.cc solves piano problem (stiff and linear strings)
PianoNL Corde/CouplagePiano.cc solves piano problem (non-stiff and non-linear strings)
PianoLIN Corde/CouplagePiano.cc solves piano problem (non-stiff and linear strings)
StringImpedanceStiffNL Corde/CordeImpedance.cc solves strings equations with impedance (stiff and non-linear strings)
StringImpedanceStiffLIN Corde/CordeImpedance.cc solves strings equations with impedance (stiff and linear strings)
StringImpedanceLIN Corde/CordeImpedance.cc solves strings equations with impedance (non-stiff and linear strings)
StringImpedanceNL Corde/CordeImpedance.cc solves strings equations with impedance (non-stiff and non-linear strings)
StringSoundboardStiffNL Corde/CordeImpedance.cc solves strings equations with soundboard (stiff and non-linear strings)
StringSoundboardStiffLIN Corde/CordeImpedance.cc solves strings equations with soundboard (stiff and linear strings)
StringSoundboardLIN Corde/CordeImpedance.cc solves strings equations with soundboard (non-stiff and linear strings)
StringSoundboardNL Corde/CordeImpedance.cc solves strings equations with soundboard (non-stiff and non-linear strings)