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
get the number of unquie points, since in all dircetions the number of points is equal, just choose one direction (x, y or z) when there are no points, you dont write them to precice can happen in parallel VK write(,) 'number of Points to writ to precice is 0, & VK cycle this spacetimefunction' transform offset bit back shift the points according to the offset bit * small fraction of the boundingCubeLength hence it is mesh independent We assume here, that all points for a specific face are grouped together in order to make use of the posIDs Give the correct exchange points to precice (store it there) return indices which will be used for all further calls 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. get the setup_indices for the shifted points
Since we are sending 5 times the same idx, for the unique Points and all of them have the same idx, we just need to store it once Create edges and triangles for the interpolation with equidistant points, if the user wants to make use of it, by setting that in the ateles config file
Type | Intent | Optional | 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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iLevel | ||||
integer, | private | :: | iSerPnt | ||||
integer, | private | :: | iCoord | ||||
integer, | private | :: | iPnt | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | iVar | ||||
integer, | private | :: | nPnts | ||||
integer, | private | :: | nEqPnts | ||||
integer, | private | :: | nEqPnts_face | ||||
integer, | private | :: | nPnts_face | ||||
integer, | private | :: | nElems | ||||
integer, | private | :: | varPos | ||||
integer, | private | :: | iEqPnt | ||||
integer, | private | :: | pos | ||||
integer, | private | :: | iAlign | ||||
integer, | private | :: | iDira(1) | ||||
integer, | private | :: | iDir | ||||
integer, | private | :: | iEqu | ||||
integer, | private | :: | offsetX | ||||
integer, | private | :: | offsetY | ||||
integer, | private | :: | offsetZ | ||||
integer(kind=long_k), | private | :: | treeID | ||||
integer, | private, | allocatable | :: | idx(:) | list of indices for all coupling points |
||
real(kind=rk), | private, | allocatable | :: | eQuePoints_all(:,:) | Array with all equidistant points |
||
real(kind=rk), | private, | allocatable | :: | serializedPnts(:) | list of equidistant points for creating the indices |
||
real(kind=rk), | private | :: | point(3) | ||||
real(kind=rk), | private | :: | baryCoord(3) | ||||
real(kind=rk), | private | :: | diff(3) | ||||
real(kind=rk), | private | :: | shifted(3) | ||||
real(kind=rk), | private, | allocatable | :: | eQuePoint(:,:) | |||
type(atl_varSys_data_type), | private, | pointer | :: | fPtr | => | NULL() | |
type(ply_poly_project_type), | private, | pointer | :: | ply_poly | => | NULL() |