Parameters for the plain L2 projection method to transform between Legendre modes and nodal representation.
This method utilizes the L2 projection from Legendre to Lagrange polynomials or the other way around. A numerical Gauss-Legendre Quadrature is used to compute the integral over the product of both functions. The Lagrange polynomials can be defined on any nodeset, see also ply_nodeset_module.
Available options for the nodes to project onto are:
'gauss-legendre'
these are the Gauss-Legendre integration points that
are also used for the numerical integration (this is the default).'chebyshev'
these are the nodes from the Chebyshev integration.The set of nodes to use is configured by the nodes_kind
option, and if
nodes_kind = 'chebyshev'
it is also possible to make use of Lobatto points
to include the interval boundaries in the nodal representation.
This is achieved by setting lobattoPoints = true
, by default this is false.
The configuration table for a projection with L2P may, for example, look as follows:
projection = {
kind = 'l2p',
factor = 1.5,
nodes_kind = 'chebyshev',
lobattoPoints = true
}
The example illustrates the three possible settings for the L2P transformation method:
factor
- Oversampling factor to avoid aliasing.nodes_kind
- Selection of set of nodes to use in the nodal
representation.lobattoPoints
- Whether to include interval bounds, only
available for Chebyshev nodes.Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(out) | :: | left |
fpt to copy to |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
fpt to copy from |
This function provides the test for equality of two projections.
Two l2p header are considered to be equal, if their node_header, and the factor are equal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is equal??
This function provides the test for unequality of two projections.
Two l2p header are considered to be unequal, if their node_header, or the factor are not equal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is unequal??
This function provides a < comparison of two projections.
Sorting of l2p header is given by node_header and by the factor.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is smaller??
This function provides a <= comparison of two projections.
Sorting of l2p header is given by node_header, l2p_blocksize and last by factor.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is smaller??
This function provides a > comparison of two projections.
Sorting of l2p header is given by node_header, l2p_blocksize and last by factor.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is greater??
This function provides a >= comparison of two projections.
Sorting of l2p header is given by node_header, l2p_blocksize and last by factor.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is greater??
l2p projection header type, consisting of the node header which give information about the type and number of points for the projection
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(ply_nodes_header_type), | public | :: | nodes_header | ||||
real(kind=rk), | public | :: | factor |
This function provides the test for equality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is equal??
This function provides the test for unequality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is unequal??
This function provides a < comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is smaller??
This function provides a <= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is smaller??
This function provides a > comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is greater??
This function provides a >= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | left |
projection to compare |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
projection to compare against |
is greater??
Load settings to describe a projection method from a Lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(out) | :: | me | |||
type(flu_State), | intent(inout) | :: | conf | |||
integer, | intent(in) | :: | thandle |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(out) | :: | me |
L2P header to define. |
||
integer, | intent(in), | optional | :: | factor |
Oversampling factor to use in the projection, defaults to 1. |
|
character(len=*), | optional | :: | nodes_kind |
Set of nodes to use in the nodal representation. |
||
logical, | intent(in), | optional | :: | lobattoPoints |
Wether to use Lobatto points (include interval bounds) when using the chebyshev nodes, defaults to .false.. |
Write L2P settings into a Lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | me | |||
type(aot_out_type), | intent(inout) | :: | conf |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(in) | :: | me |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_l2p_header_type), | intent(out) | :: | left |
fpt to copy to |
||
type(ply_l2p_header_type), | intent(in) | :: | right |
fpt to copy from |