ply_sample_adaptive Subroutine

public subroutine ply_sample_adaptive(me, ndims, orig_mesh, orig_bcs, varsys, var_degree, lvl_degree, trackInst, trackConfig, time, new_mesh, resvars)

Sample data described by varsys in orig_mesh according to the tracking object trackInst with adaptive refinements.

Only works for Q-Polynomials.

Arguments

TypeIntentOptionalAttributesName
type(ply_sampling_adaptive_type), intent(in) :: me

A ply_sampling_type to describe the sampling method.

integer, intent(in) :: ndims

Number of dimensions in the polynomial representation.

type(treelmesh_type), intent(in) :: orig_mesh

The original mesh to be refined.

type(tem_BC_prop_type), intent(in) :: orig_bcs

Boundary conditions for the original mesh.

type(tem_varSys_type), intent(in) :: varsys

Variable system of the original data to do the sampling on.

integer, intent(in) :: var_degree(:)

Maximal polynomial degree for each variable.

Needs to be matching the variable definition in the variable system.

integer, intent(in) :: lvl_degree(:)

Maximal polynomial degree for each level.

type(tem_tracking_instance_type), intent(in) :: trackInst

Tracking object describing what to sample.

type(tem_tracking_config_type), intent(in) :: trackConfig

Tracking configuration with the geometry to obtain from the overall mesh.

type(tem_time_type), intent(in) :: time

Point in time to get the data for.

type(treelmesh_type), intent(out) :: new_mesh

The new mesh with the refined elements.

type(tem_varSys_type), intent(out) :: resvars

Resulting system of variables describing the data in the arrays of subsampled elements.


Calls

proc~~ply_sample_adaptive~~CallsGraph proc~ply_sample_adaptive ply_sample_adaptive proc~ply_split_element_init ply_split_element_init proc~ply_sample_adaptive->proc~ply_split_element_init proc~tem_refine_global_subtree tem_refine_global_subtree proc~ply_sample_adaptive->proc~tem_refine_global_subtree proc~tem_bc_prop_sublist tem_bc_prop_sublist proc~ply_sample_adaptive->proc~tem_bc_prop_sublist proc~tem_create_subtree_of tem_create_subTree_of proc~ply_sample_adaptive->proc~tem_create_subtree_of proc~ply_sampling_var_compute_elemdev ply_sampling_var_compute_elemdev proc~ply_sample_adaptive->proc~ply_sampling_var_compute_elemdev proc~tem_levelof tem_LevelOf proc~ply_sample_adaptive->proc~tem_levelof proc~tem_varsys_append_statevar tem_varSys_append_stateVar proc~ply_sample_adaptive->proc~tem_varsys_append_statevar proc~tem_subtree_from tem_subTree_from proc~ply_sample_adaptive->proc~tem_subtree_from proc~tem_bc_prop_pos tem_bc_prop_pos proc~ply_sample_adaptive->proc~tem_bc_prop_pos proc~ply_sampling_var_allocate ply_sampling_var_allocate proc~ply_sample_adaptive->proc~ply_sampling_var_allocate proc~ply_sampling_var_move ply_sampling_var_move proc~ply_sample_adaptive->proc~ply_sampling_var_move mpi_allreduce mpi_allreduce proc~ply_sample_adaptive->mpi_allreduce proc~ply_sampling_varsys_for_track ply_sampling_varsys_for_track proc~ply_sample_adaptive->proc~ply_sampling_varsys_for_track proc~tem_destroy_subtree tem_destroy_subTree proc~ply_sample_adaptive->proc~tem_destroy_subtree proc~tem_create_tree_from_sub tem_create_tree_from_sub proc~ply_sample_adaptive->proc~tem_create_tree_from_sub proc~ply_split_legendre_matrix ply_split_legendre_matrix proc~ply_split_element_init->proc~ply_split_legendre_matrix proc~ply_sampling_varsys_for_track->proc~tem_levelof proc~ply_sampling_varsys_for_track->proc~ply_sampling_var_allocate proc~tem_varsys_init tem_varSys_init proc~ply_sampling_varsys_for_track->proc~tem_varsys_init proc~alpha_beta alpha_beta proc~ply_split_legendre_matrix->proc~alpha_beta proc~beta beta proc~ply_split_legendre_matrix->proc~beta proc~alpha alpha proc~ply_split_legendre_matrix->proc~alpha proc~alpha_frac alpha_frac proc~ply_split_legendre_matrix->proc~alpha_frac

Called by

proc~~ply_sample_adaptive~~CalledByGraph proc~ply_sample_adaptive ply_sample_adaptive proc~ply_sample_data ply_sample_data proc~ply_sample_data->proc~ply_sample_adaptive proc~ply_sampled_track_output ply_sampled_track_output proc~ply_sampled_track_output->proc~ply_sample_data program~sdr_harvesting sdr_harvesting program~sdr_harvesting->proc~ply_sampled_track_output

Contents


Variables

TypeVisibilityAttributesNameInitial
type(ply_sampling_var_type), private, pointer:: var(:)=> NULL()
type(ply_sampling_var_type), private, pointer:: prev(:)=> NULL()
type(sampled_method_data_type), private, pointer:: vardat=> NULL()
real(kind=rk), private, allocatable:: reduction_factor(:)
real(kind=rk), private, allocatable:: maxmean(:)
real(kind=rk), private, allocatable:: minmean(:)
real(kind=rk), private :: memprefac
real(kind=rk), private, pointer:: parent_data(:,:)=> NULL()
real(kind=rk), private, pointer:: child_data(:,:)=> NULL()
integer, private :: maxtarget
integer, private :: targetdeg
integer, private :: containersize
integer, private :: nMaxModes
integer, private :: nChildren
integer, private :: nVars
integer, private :: nScalars
integer, private :: nComponents
integer, private :: nDofs
integer, private :: nOldDofs
integer, private :: nElems
integer, private :: newElems
integer, private :: refinedElems
integer, private :: varpos
integer, private :: bcpos
integer, private :: firstdof
integer, private :: lastdof
integer, private :: oldfirst
integer, private :: oldlast
integer, private :: iVar
integer, private :: iScalar
integer, private :: iComponent
integer, private :: iRefLevel
integer, private :: iElem
integer, private :: iRefElem
integer, private :: iNewElem
integer, private :: iChild
integer, private :: elemlevel
integer, private :: iError
integer, private, allocatable:: ReducableElems(:)
integer, private, allocatable:: map2global(:)
integer, private, allocatable:: maxdeg(:)
integer, private, allocatable:: origsize(:)
logical, private, allocatable:: reached_limit(:)
logical, private, allocatable:: is_varying(:)
logical, private :: lastRefine
logical, private :: need2refine
type(treelmesh_type), private, pointer:: curmesh=> NULL()
type(treelmesh_type), private, pointer:: oldmesh=> NULL()
type(tem_BC_prop_type), private, pointer:: curbcs=> NULL()
type(tem_BC_prop_type), private, pointer:: oldbcs=> NULL()
type(tem_subTree_type), private :: refine_subtree
type(tem_subTree_type), private :: tracked_subtree
procedure(ply_split_element), private, pointer:: split_element
procedure(ply_filter_element), private, pointer:: filtering
procedure(tem_varSys_proc_element), private, pointer:: get_element
procedure(tem_varSys_proc_point), private, pointer:: get_point
procedure(tem_varSys_proc_setParams), private, pointer:: set_params
procedure(tem_varSys_proc_getParams), private, pointer:: get_params
procedure(tem_varSys_proc_setupIndices), private, pointer:: setup_indices
procedure(tem_varSys_proc_getValOfIndex), private, pointer:: get_valOfIndex