atl_writePrecice_module Module

This module includes subroutines, to use different point distribution on the coupling interface, when using preCICE for the coupling. The point distribution can either be equidistant or non-equidistant. Beside that the Nearest-Projection (an interpolation method) can be used with both point distribution.


Uses

Used by

  • module~~atl_writeprecice_module~~UsedByGraph module~atl_writeprecice_module atl_writePrecice_module module~atl_imexrk_module atl_imexrk_module module~atl_imexrk_module->module~atl_writeprecice_module module~atl_precice_module atl_precice_module module~atl_precice_module->module~atl_writeprecice_module module~atl_rk4_module atl_rk4_module module~atl_rk4_module->module~atl_writeprecice_module module~atl_rktaylor_module atl_rktaylor_module module~atl_rktaylor_module->module~atl_writeprecice_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_writeprecice_module module~atl_global_time_integration_module atl_global_time_integration_module module~atl_global_time_integration_module->module~atl_imexrk_module module~atl_global_time_integration_module->module~atl_rk4_module module~atl_global_time_integration_module->module~atl_rktaylor_module module~atl_global_time_integration_module->module~atl_ssprk2_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_precice_module module~atl_container_module atl_container_module module~atl_initialize_module->module~atl_container_module module~atl_container_module->module~atl_global_time_integration_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_global_time_integration_module module~atl_program_module->module~atl_initialize_module module~atl_program_module->module~atl_container_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_container_module program~atl_harvesting->module~atl_program_module program~ateles ateles program~ateles->module~atl_container_module program~ateles->module~atl_program_module

Subroutines

public subroutine atl_write_precice(stFunList, varSys, time, tree)

loop over linked list of spacetimefunction set the current to head loop over all shapes of that spacetimefunction check if there is a precice kind

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_st_fun_linkedList_type), intent(inout), target :: stFunList

This list contains all space-time-function

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

Global variable system

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

The current absolute time.

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

treelm mesh

public subroutine atl_write_precice_getPoint(stFunList, varSys, tree, mesh_list)

loop over linked list of spacetimefunction set the current to head check if there is a precice kind loop over all shapes of that spacetimefunction

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_st_fun_linkedList_type), intent(inout), target :: stFunList

This list contains all space-time-function

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

Global variable system

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

treelm mesh

type(atl_cube_elem_type), intent(in) :: mesh_list(tree%global%minLevel:tree%global%maxLevel)

public subroutine atl_read_precice(stFunList, tree)

loop over linked list of spacetimefunction set the current to head loop over all shapes of that spacetimefunction check if there is a precice kind get the number of unquie points ( xyz should be same number)

Arguments

Type IntentOptional Attributes Name
type(tem_st_fun_linkedList_type), intent(inout), target :: stFunList

This list contains all space-time-function

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

treelm mesh

private subroutine atl_nearest_projection(nPointsPerDir, nPnts, nPointsPerFace, scheme_dim, iLevel, preciceCpl)

For a 2D testcase just the edges are of importance, in 3D also triangles have to be provided loop over all faces and edges. Set an offset, to get from one face to the other For a 3D testcase in addition to the edges triangles have to be created

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nPointsPerDir
integer, intent(in) :: nPnts
integer, intent(in) :: nPointsPerFace
integer, intent(in) :: scheme_dim
integer, intent(in) :: iLevel
type(tem_precice_coupling_type), pointer :: preciceCpl

private subroutine atl_write_equiPoints(stFun, tree, mesh_list, varSys, preciceCpl)

ceate equidistant points for write to precice and use the number of these points for the setup_indices routine. If its set by the user, the Nearest-Pojection can be used for these points

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_st_fun_listElem_type), intent(inout), target :: stFun

This list contains space-time-function

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

Mesh data in treelmesh format.

type(atl_cube_elem_type), intent(in) :: mesh_list(tree%global%minLevel:tree%global%maxLevel)
type(tem_varSys_type), intent(in) :: varSys
type(tem_precice_coupling_type), pointer :: preciceCpl

This type contains all information, which are needed for the coupling with precice

private subroutine atl_write_nonequiPoints(varSys, tree, stFun, preciceCpl)

setup_indices for boundary variables are read_var in precice space-time function we are not able to use 'idx' created here as input for get_valOfIndex for write_vars.Therefore we have to do setup_indices for write_vars once during initialization and then store the idx in precice_coupling type. This is done for the non-equidistant points. We also set the vertices and the edges as well as the triangles for the Interpolation between the domains.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_varSys_type), intent(in) :: varSys

Global variable system

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

information about the mesh

type(tem_st_fun_listElem_type), intent(inout) :: stFun

contains the elements in spacetime-function

type(tem_precice_coupling_type), pointer :: preciceCpl