element Module

Module that defines the concept of a DG element and various associated routines.

The implementation is found in submodule_element_implementation.f90)


Uses

  • module~~element~~UsesGraph module~element element module~kinds kinds module~element->module~kinds

Used by

  • module~~element~~UsedByGraph module~element element module~grid_function grid_function module~grid_function->module~element module~element_implementation element_implementation module~element_implementation->module~element module~grid grid module~grid->module~element module~grid->module~grid_function module~world_tube world_tube module~world_tube->module~grid_function module~effective_source effective_source module~effective_source->module~grid_function module~effective_source->module~world_tube module~grid_implementation grid_implementation module~grid_implementation->module~grid program~test test program~test->module~grid program~test->module~world_tube module~observers observers program~test->module~observers module~scalar_schw scalar_schw program~test->module~scalar_schw module~scalar_schw_eff scalar_schw_eff program~test->module~scalar_schw_eff module~singular_observer singular_observer program~test->module~singular_observer module~self_force_observer self_force_observer program~test->module~self_force_observer module~observers->module~grid_function proc~read_all_modes read_all_modes proc~read_all_modes->module~grid proc~read_all_modes->module~world_tube proc~scal_schw_rhs scal_schw_rhs proc~scal_schw_rhs->module~grid proc~scal_schw_rhs->module~world_tube module~scalar_schw->module~grid_function module~time_dependent_coordinate time_dependent_coordinate module~scalar_schw->module~time_dependent_coordinate module~pde_equations pde_equations module~scalar_schw->module~pde_equations module~scalar_schw->module~scalar_schw_eff proc~scal_schw_init scal_schw_init proc~scal_schw_init->module~grid proc~scal_schw_load_globals scal_schw_load_globals proc~scal_schw_load_globals->module~grid module~time_dependent_coordinate->module~grid_function module~grid_function_implementation grid_function_implementation module~grid_function_implementation->module~grid_function proc~tdc_set_coefficients tdc_set_coefficients proc~tdc_set_coefficients->module~grid module~pde_equations->module~grid_function proc~output_coords output_coords proc~output_coords->module~grid proc~sobs_init sobs_init proc~sobs_init->module~grid proc~sobs_init->module~effective_source proc~get_elem_flux get_elem_flux proc~get_elem_flux->module~grid_function proc~get_elem_flux->module~grid proc~get_elem_flux->module~world_tube module~scalar_schw_eff->module~effective_source proc~scal_schw_eff_init scal_schw_eff_init proc~scal_schw_eff_init->module~scalar_schw module~pde_equations_implementation pde_equations_implementation module~pde_equations_implementation->module~pde_equations module~scalar_schw_implementation scalar_schw_implementation module~scalar_schw_implementation->module~scalar_schw module~singular_observer->module~effective_source module~singular_observer->module~observers module~observers_implementation observers_implementation module~observers_implementation->module~observers module~world_tube_implementation world_tube_implementation module~world_tube_implementation->module~world_tube module~time_dependent_coordinate_implementation time_dependent_coordinate_implementation module~time_dependent_coordinate_implementation->module~time_dependent_coordinate module~self_force_observer->module~observers module~self_force_observer->module~scalar_schw module~singuler_observer_implementation singuler_observer_implementation module~singuler_observer_implementation->module~singular_observer module~scalar_schw_eff_implementation scalar_schw_eff_implementation module~scalar_schw_eff_implementation->module~scalar_schw_eff proc~scal_schw_save_globals_2 scal_schw_save_globals_2 proc~scal_schw_save_globals_2->module~self_force_observer module~self_force_observer_implementation self_force_observer_implementation module~self_force_observer_implementation->module~self_force_observer

Contents


Interfaces

public interface element_rdata

The constructor for the real element data class.

public interface element_cdata

The constructor for the complex element data class.

public interface element_boundary_idata

The constructor for the integer element boundary data class.

public interface element_boundary_rdata

The constructor for the real element boundary data class.

public interface element_boundary_cdata

The constructor for the complex element boundary data class.

interface

  • public module function allocate_rdata(order)

    The interface to the implementation of the constructor for the real element data class.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=ip), intent(in) :: order

    The order of the element. The data array will be of size order+1.

    Return Value type(element_rdata)

    The return object has to be of the element_rdata class.

interface

  • public module function allocate_cdata(order)

    The interface to the implementation of the constructor for the complex element data class.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=ip), intent(in) :: order

    The order of the element. The data array will be of size order+1.

    Return Value type(element_cdata)

    The return object has to be of the element_cdata class.

interface

  • public module function init_boundary_idata(idata)

    The interface to the implementation of the constructor for the integer boundary element data class.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=ip), intent(in), dimension(2):: idata

    The object gets initialized with the data in this array.

    Return Value type(element_boundary_idata)

    The return object has to be of the element_boundary_idata class.

interface

  • public module function init_boundary_rdata(rdata)

    The interface to the implementation of the constructor for the real boundary element data class.

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in), dimension(2):: rdata

    The object gets initialized with the data in this array.

    Return Value type(element_boundary_rdata)

    The return object has to be of the element_boundary_rdata class.

interface

  • public module function init_boundary_cdata(cdata)

    The interface to the implementation of the constructor for the complex boundary element data class.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in), dimension(2):: cdata

    The object gets initialized with the data in this array.

    Return Value type(element_boundary_cdata)

    The return object has to be of the element_boundary_cdata class.

interface

  • public module subroutine deallocate_rdata(this)

    The interface to the implementation of the finalizer for the real element data class.

    Arguments

    Type IntentOptional AttributesName
    type(element_rdata), intent(inout) :: this

    The argument has to be of the element_rdata class.

interface

  • public module subroutine deallocate_cdata(this)

    The interface to the implementation of the finalizer for the complex element data class.

    Arguments

    Type IntentOptional AttributesName
    type(element_cdata), intent(inout) :: this

    The argument has to be of the element_cdata class.


Derived Types

type, public, abstract :: element_data

An abstract class for the data in an element.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: order

The order of the element.

type, public, extends(element_data) :: element_rdata

A real data type instance of the abstract element data type.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: order

The order of the element.

real(kind=wp), public, dimension(:), allocatable:: var

A real 1d array that will contain the data of the element.

Constructor

The constructor for the real element data class.

public interface allocate_rdata()

Finalizations Procedures

final :: deallocate_rdata

The finalizer that will deallocate the 1d data array.

type, public, extends(element_data) :: element_cdata

A complex data type instance of the abstract element data type.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: order

The order of the element.

complex(kind=wp), public, dimension(:), allocatable:: var

A complex 1d array that will contain the data of the element.

Constructor

The constructor for the complex element data class.

public interface allocate_cdata()

Finalizations Procedures

final :: deallocate_cdata

The finalizer that will deallocate the 1d data array.

type, public, abstract :: element_boundary_data

An abstract class for the boundary data in an element.

An integer data type instance of the abstract element boundary data type.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public, dimension(2):: bvar

An integer 1d array of size 2 that will contain the boundary data of the element.

Constructor

The constructor for the integer element boundary data class.

public interface init_boundary_idata()

A real data type instance of the abstract element boundary data type.

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public, dimension(2):: bvar

A real 1d array of size 2 that will contain the boundary data of the element.

Constructor

The constructor for the real element boundary data class.

public interface init_boundary_rdata()

A complex data type instance of the abstract element boundary data type.

Components

TypeVisibility AttributesNameInitial
complex(kind=wp), public, dimension(2):: bvar

A complex 1d array of size 2 that will contain the boundary data of the element.

Constructor

The constructor for the complex element boundary data class.

public interface init_boundary_cdata()