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.
Obtain the point coordinates to get values for get the number of unquie points ( xyz should be same number) VK write(,) 'number of Points to write to precice is 0, cycle & VK & this spacetimefunction' shift the points via the offset bit for the get_point routine get the unquie list of points get the unquie list of points serialize them since precice needs a 1d array transform offet bit back shift the points according to the offset bit * small fraction of the boundingCubeLength hence it is mesh independent loop over the variables to write to precice get_point routine for unquie array of points of that variable 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 send the points to precice and get back the positionID allocate posID array
From here on the Nearest-Projection is introduced, which has to be activated by the user in the ateles-config file.
We assume here, that all points for a specific face are grouped together in order to make use of the posIDs Call to create the edges and triangles acoording to the dimension
Type | Intent | Optional | 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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | allocatable | :: | point(:,:) | |||
real(kind=rk), | private, | allocatable | :: | shiftpoints(:,:) | |||
real(kind=rk), | private, | allocatable | :: | serializedPnts(:) | |||
integer, | private, | allocatable | :: | idx(:) | |||
type(atl_varSys_data_type), | private, | pointer | :: | fPtr | => | NULL() | |
type(ply_poly_project_type), | private, | pointer | :: | ply_poly | => | NULL() | |
integer, | private | :: | iLevel | ||||
integer, | private | :: | iVar | ||||
integer, | private | :: | iPnt | ||||
integer, | private | :: | i | ||||
integer, | private | :: | iCoord | ||||
integer, | private | :: | nPnts | ||||
integer, | private | :: | varPos | ||||
integer, | private | :: | pos | ||||
integer, | private | :: | offsetX | ||||
integer, | private | :: | offsetY | ||||
integer, | private | :: | offsetZ |