ply_fpt_header_type Derived Type

type, public :: ply_fpt_header_type

Type for the fpt header, stores all information needed to initialize the fpt method later on


type~~ply_fpt_header_type~~InheritsGraph type~ply_fpt_header_type ply_fpt_header_type type~ply_nodes_header_type ply_nodes_header_type type~ply_fpt_header_type->type~ply_nodes_header_type nodes_header

Inherited by

type~~ply_fpt_header_type~~InheritedByGraph type~ply_fpt_header_type ply_fpt_header_type type~ply_prj_header_type ply_prj_header_type type~ply_prj_header_type->type~ply_fpt_header_type fpt_header type~ply_prj_init_type ply_prj_init_type type~ply_prj_init_type->type~ply_prj_header_type header type~sdr_subresolution_type sdr_subresolution_type type~sdr_subresolution_type->type~ply_prj_header_type project_header type~sdr_subresolution_type->type~ply_prj_init_type projection type~sdr_confhead_type sdr_confHead_type type~sdr_confhead_type->type~sdr_subresolution_type subresolution type~dyn_projectionarray_type dyn_projectionarray_type type~dyn_projectionarray_type->type~ply_prj_init_type val



type(ply_nodes_header_type), private :: nodes_header
real(kind=rk), private :: factor =1.0_rk

In case of nonlinear equations, aliasing occurs if the projections of the nonlinear terms on the testfunctions are not calculated accurately enough. To avoid these errors it is possible to extend the transformation vectors of the FPT with zeros. This factor determines by how many zeros the modal vector is extended before transformation. This factor has to be chosen properly with respect of the type of nonlinearity of your equation.

integer, private :: blocksize =ply_fpt_default_blocksize

The blockisze of the fast bases exchange algorithm from Legendre to Chebyshev polynomials. A negative number indicates to use the default blocksize of the algorithm.

integer, private :: approx_terms =ply_fpt_default_approx_terms

The number of approximation terms to use for blocks apart from the diagonal.

This defaults to 18, which is recommended for double precision.

integer, private :: implementation

The implementation variant to use for the transformation computation.

The computation can be done either by a 'vector' implementation or by a 'scalar' implementation. We indicate the respective implementations by the integers ply_fpt_scalar or ply_fpt_vector.

integer, private :: striplen =vlen

The striplen, that should be used for vectorized simultaneous computations of the matrix operation.

This defaults to the vlen from the TEM_compileconf_module, it might be set differently here, as we are dealing with a twodimensional problem here, and the optimal setting might be different from the code parts.

integer, private :: subblockingWidth =ply_fpt_default_subblockingWidth

The width of the subblocks used during the unrolled base exchange to ensure a better cache usage.

The default is a subblocking width of 8.

logical, private :: adapt_factor_pow2 =.false.

Should the oversampling factor be adapted to ensure a power of 2 in the oversampled polynomial?

If this is true, the factor will be increased to ensure an oversampled representation with a power of 2. Default is false.