atl_load_project_module Module

Configuring the projection (modal to nodal transformation)

Ateles uses the Legendre polynomial basis to represent the solution in the DG elements. For nonlinear operations this incurs the necessity to transform this representation into nodal values, such that a pointwise evaluation can be performed for those nonlinear operations. The method to be used for this projection between the two representations is configured in the projection table.

There is a general projection method to be configured according to the described in ply_poly_project_module and in addition individual projection parameters can be defined for various tasks. These override the general parameters for those tasks.

The general parameters will be used for all tasks for which no specific projection definitions are provided and are the ones that will be used in the main computational operations.

For the following tasks individual projection definitions can be provided within the projection table (each needs to be a table describing the projection method, as layed out in ply_poly_project_module):

  • source_terms: evaluation of source terms
  • boundary_condition: evaluation of boundary condition
  • initial_condition: evaluation of initial condition
  • material: evaluation of material parameters

The projection definition for ateles could for example look like this:

  projection = {
    kind = 'fpt',
    factor = 1.5,
    initial_condition = {
      kind = 'fpt',
      factor = 3
    }
  }

Please refer to the ply_poly_project_module for details on the configuration of the projection method.


Uses

Used by

  • module~~atl_load_project_module~~UsedByGraph module~atl_load_project_module atl_load_project_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_load_project_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_initialize_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_program_module program~ateles ateles program~ateles->module~atl_program_module

Subroutines

public subroutine atl_load_projection(minLevel, maxLevel, equation, poly_proj_pos, dynprojectArray, conf, scheme_list, source_projPos, boundary_list, boundary_list_stab, ic_pos_list, material_list)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(atl_Equations_type), intent(in) :: equation
integer, intent(inout) :: poly_proj_pos(minlevel:maxLevel)
type(dyn_projectionarray_type), intent(inout) :: dynprojectArray
type(flu_State), intent(in) :: conf
type(atl_scheme_type), intent(in) :: scheme_list(minlevel:maxLevel)
integer, intent(inout) :: source_projPos(minlevel:maxLevel)

The levelwise positions of the projections that has to be used for the sources

type(atl_level_boundary_type), intent(inout) :: boundary_list(minlevel:maxLevel)
type(atl_level_boundary_type), intent(inout) :: boundary_list_stab(minlevel:maxLevel)
integer, intent(inout), allocatable :: ic_pos_list(:)
type(atl_material_type), intent(inout) :: material_list(minlevel:maxLevel)

private subroutine atl_load_general_projection(poly_proj_pos, dynprojectArray, minLevel, maxLevel, scheme_list, conf, parent)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: poly_proj_pos(minlevel:maxLevel)
type(dyn_projectionarray_type), intent(inout) :: dynprojectArray
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(atl_scheme_type), intent(in) :: scheme_list(minlevel:maxLevel)
type(flu_State), intent(in) :: conf
integer, intent(in) :: parent

private subroutine atl_load_subprojection(minLevel, maxLevel, subkey, proj_pos, dynprojectArray, general_pos_list, conf, scheme_list, parent)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
character(len=*), intent(in) :: subkey
integer, intent(out) :: proj_pos(minlevel:maxlevel)
type(dyn_projectionarray_type), intent(inout) :: dynprojectArray
integer, intent(in) :: general_pos_list(minLevel:maxLevel)
type(flu_State), intent(in) :: conf
type(atl_scheme_type), intent(in) :: scheme_list(minlevel:maxLevel)
integer, intent(in) :: parent