%EVENT_DataProjection%

event handle to project data from other parts of the geometry

Mostly for symmetric boundary conditions, data needs to be projected from a long geometrical distance. The appropriate location might be in another MPI process. In this case, the projY() as well as approxY() functionalities do not work properly.
EVENT($EV_DataProj$) = ( event_trigger_expression, %EVENT_DataProjection%, xEval, yEval, zEval, chamberEval, %ind_Function%, %ind_Target% , OPTIONAL: Further indices to be projected )
Arguments:
  • event_trigger_expression - function that has to deliver > 0 if the data projection is to be done for this point
  • xEval, yEval, zEval - location at which data has to be interpolated
  • chamberEval - chamber in which data has to be interpolated
  • %ind_Function% - function index of the function to be interpolated
  • %ind_Target% - target index where to write the result
Example: Warning: The following might not work as symmetric boundary condition because the projected point (Y%ind_x(1)%+1.0*&xDistMap&), Y%ind_x(2)%, Y%ind_x(3)% might be outside the current MPI-process.
BC_v($left_fluid$) = ( %BND_DIRICH%, [approxY(%ind_v(1)%,1, 3,3,0, (Y%ind_x(1)%+1.0*&xDistMap&), Y%ind_x(2)%, Y%ind_x(3)%)], ... [approxY(%ind_v(2)%,1, 3,3,0, (Y%ind_x(1)%+1.0*&xDistMap&), Y%ind_x(2)%, Y%ind_x(3)%)], ... [approxY(%ind_v(3)%,1, 3,3,0, (Y%ind_x(1)%+1.0*&xDistMap&), Y%ind_x(2)%, Y%ind_x(3)%)] ) BC_T($left_fluid$) = ( %BND_DIRICH%, [approxY(%ind_T%,1, 3,3,0, (Y%ind_x(1)%+1.0*&xDistMap&), Y%ind_x(2)%, Y%ind_x(3)%)] )
General purpose variant: Explicit symmetry boundary condition (an implicit implementation does not yet exist!)
EVENT($EV_DataProj$) = ( [Y%ind_BC%=$left_fluid$], %EVENT_DataProjection%, [Y%ind_x(1)%+1.0*&xDistMap&], [Y%ind_x(2)%], [Y%ind_x(3)%], 1, ... %ind_v(1)%, %indU_v(1)%, %ind_v(2)%, %indU_v(2)%, %ind_v(3)%, %indU_v(3)%, %ind_T%, %indU_T% ) BC_v($left_fluid$) = ( %BND_DIRICH%, [Y%indU_v(1)%], [Y%indU_v(2)%],, [Y%indU_v(3)%] ) BC_T($left_fluid$) = ( %BND_DIRICH%, [Y%indU_T%] )