How physical indexes are implemented in Montjoie

In equations solved by Montjoie, for instance Helmholtz equation :

The coefficients and are the so-called physical indexes and depend on the position x. The physical indexes can be constant on the different domains of the mesh, but can also vary continuously inside each domain. An index can be scalar, vectorial, tensorial, each scalar component is either a constant (on the considered domain) or a varying field (object of type PhysicalVaryingMedia). In the case of a varying field, the constant stored in the object PhysicalVaryingMedia is used to specify a value of the physical index at infinity (used for PML or absorbing boundary condition).

Public attributes of class PhysicalVaryingMedia

index_regular varying field defined through values on a regular grid
index_sinus varying field defined as a product of sine functions
index_mesh varying field defined through values on nodal points of the mesh
index_radial varying field defined through values at different radii r

Public methods of class PhysicalVaryingMedia

Constructors constructor with a constant value
IsComplex returns true if the physical index contains values with non-null imaginary part
IsVarying returns false if the physical index is contant, true otherwise
SetMediaType sets the type of varying field
GetMediaType returns the type of varying field
GetConstant returns the constant value associated with the field
InitConstant initializes a constant field
InitSinus initializes a sinusoidal field (product of sine functions)
InitRandom initializes a field defined by its values on a regular grid
InitMesh initializes a field defined by its values on nodal points of the mesh
InitRadial initializes a radial field defined by its values on different radii r
GetInverse inverts the field, so that 1/rho is returned instead of rho
Mlt modifies the field such that alpha rho is returned instead of rho
Clear clears arrays used to store the field
GetValue returns the value of the field on quadrature points of the mesh
GetGradient returns the gradient of the field on quadrature points of the mesh
SetCoefficient modifies the field on a quadrature point of the mesh
SetCoefGradient modifies the gradient of the field on a quadrature point of the mesh
GetCoefficient returns the field on a quadrature point of the mesh
GetCoefGradient returns the gradient of the field on a quadrature point of the mesh
Reallocate sets the number of elements of the mesh
ReallocateOnElement sets the number of quadrature points on an element of the mesh

Public methods of class RectangleCutOff

Init initializes the boundaries of the cut-off function
InsideBox returns true if the point is inside the definition domain of the cut-off function
ApplyCutOff applies cut-off function to a value

Public methods of class PhysicalSinusoidalMedia

IsComplex returns true if the physical index contains values with non-null imaginary part
GetInverse inverts the field, so that 1/rho is returned instead of rho
Init_Sine initializes the parameters of the sinusoidal field
Mlt modifies the field such that alpha rho is returned instead of rho
ComputeIndexAtPoint computes the field at a given point
ComputeIndex computes the field on quadrature points of a mesh

Public methods of class PhysicalRegularMedia

Init_Regular initializes parameters of the field
SetNoPeriodic the field is assumed to be non-periodic
SetPeriodic the field is assumed to be periodic
SetQuasiPeriodic the field is assumed to be quasi-periodic
IsComplex returns true if the physical index contains values with non-null imaginary part
GetInverse inverts the field, so that 1/rho is returned instead of rho
Mlt modifies the field such that alpha rho is returned instead of rho
Clear releases the memory used to store the field
ReadFile reads the values of the field on the regular grid
ComputeIndexAtPoint computes the field at a given point
ComputeIndex computes the field on quadrature points of a mesh

Public methods of class PhysicalMeshMedia

IsComplex returns true if the physical index contains values with non-null imaginary part
GetInverse inverts the field, so that 1/rho is returned instead of rho
Mlt modifies the field such that alpha rho is returned instead of rho
Clear releases the memory used to store the field
GetMeshName returns the name of the file where the mesh is stored
GetOrder returns the order of approximation used for nodal points of the mesh
GetNbElt returns the number of elements of the mesh
GetNbNodes returns the number of nodes on an element of the mesh
GetValue returns the value of the field on a nodal point of the mesh
GetGradient returns the gradient of the field on a nodal point of the mesh
Init_Mesh initializes the parameters of the field defined on nodal points of a mesh
RemoveGlobalElements removes elements that are located on other processors
ReadFile reads the values of the field
ComputeGradient computes the gradient of the field

Public methods of class RadialVaryingMedia

Init_Radial initializes the parameters of the radial field
IsComplex returns true if the physical index contains values with non-null imaginary part
GetInverse inverts the field, so that 1/rho is returned instead of rho
Mlt modifies the field such that alpha rho is returned instead of rho
Clear releases the memory used to store the field
ComputeIndexAtPoint computes the field at a given point
ComputeIndex computes the field on quadrature points of a mesh

Public methods of class ScalarPhysicalIndice

IsZero returns true if the physical index is equal to zero
IsComplex returns true if the physical index contains values with non-null imaginary part
IsVarying returns true if the physical index is varying, false if it is constant
SetMediaType sets the type of varying index
GetMediaType returns the type of varying index
GetNbVaryingMedia returns the number of varying field
GetVaryingMedia retrieves addresses of the varying fields stored in the index
SetIdentity sets the index to one
GetConstant returns the constant associated with the index
SetConstant modifies the constant associated with the index
Zero sets the index to 0
GetInverse inverts the index, so that 1/rho is returned instead of rho
Mlt modifies the index such that alpha rho is returned instead of rho
Clear releases the memory used to store the index
GetCoefficient returns the index on a quadrature point of the mesh
GetCoefGradient returns the gradient of the index on a quadrature point of the mesh
SetInputVaryingMedia initializes a varying field from parameters of the data file
SetInputData initializes the index from parameters of the data file

Public methods of class VectorialPhysicalIndice

IsZero returns true if the physical index is equal to zero
IsComplex returns true if the physical index contains values with non-null imaginary part
IsVarying returns true if the physical index is varying, false if it is constant
SetMediaType sets the type of varying index
GetMediaType returns the type of varying index
GetNbVaryingMedia returns the number of varying field
GetVaryingMedia retrieves addresses of the varying fields stored in the index
SetIdentity sets the index to one
GetConstant returns the constant associated with the index
SetConstant modifies the constant associated with the index
Zero sets the index to 0
Mlt modifies the index such that alpha rho is returned instead of rho
Clear releases the memory used to store the index
GetCoefficient returns the index on a quadrature point of the mesh
GetCoefGradient returns the gradient of the index on a quadrature point of the mesh
SetInputVaryingMedia initializes a varying field from parameters of the data file
SetInputData initializes the index from parameters of the data file

Public methods of class TensorPhysicalIndice

IsZero returns true if the physical index is equal to zero
IsComplex returns true if the physical index contains values with non-null imaginary part
IsVarying returns true if the physical index is varying, false if it is constant
SetMediaType sets the type of varying index
GetMediaType returns the type of varying index
SetAnisotropy sets the type of anisotropy (isotrope, orthotrope or anisotrope)
GetAnisotropy returns the type of anisotropy (isotrope, orthotrope or anisotrope)
GetNbVaryingMedia returns the number of varying field
GetVaryingMedia retrieves addresses of the varying fields stored in the index
SetIdentity sets the index to the identity matrix
GetConstant returns the constant associated with the index
SetConstant modifies the constant associated with the index
Zero sets the index to 0
Mlt modifies the index such that alpha rho is returned instead of rho
GetInverse inverts the index, so that rho^{-1} is returned instead of rho
Clear releases the memory used to store the index
MltMatrix applies the tensor to a vector
GetCoefficient returns the index on a quadrature point of the mesh
GetCoefGradient returns the gradient of the index on a quadrature point of the mesh
SetInputVaryingMedia initializes a varying field from parameters of the data file
SetInputData initializes the index from parameters of the data file

Public methods of class ElasticPhysicalIndice

IsComplex returns true if the physical index contains values with non-null imaginary part
IsVarying returns true if the physical index is varying, false if it is constant
SetMediaType sets the type of varying index
GetMediaType returns the type of varying index
GetAnisotropyType returns the type of anisotropy (isotrope, orthotrope or anisotrope)
GetNbVaryingMedia returns the number of varying fields
GetVaryingMedia retrieves addresses of the varying fields stored in the index
SetIdentity sets the index to the identity elastic tensor
GetConstant returns the constant associated with the index
SetConstant modifies the constant associated with the index
Zero sets the index to 0
Mlt modifies the index such that alpha rho is returned instead of rho
GetInverse inverts the index, so that rho^{-1} is returned instead of rho
Clear releases the memory used to store the index
MltMatrix applies the tensor to a vector
GetCoefficient returns the index on a quadrature point of the mesh
MltMatrix applies the tensor to a matrix
MltVector applies the tensor to a vector viewed as a matrix
SetInputVaryingMedia initializes a varying field from parameters of the data file
SetInputData initializes the index from parameters of the data file