udfGetPbcData()
Return solution data for pairs of nodes for the periodic boundary condition.
Syntax
data = udfGetPbcData( udfHd, dataName ) ;
Type
AcuSolve User-Defined Problem Boundary Condition
Parameters
- udfHd
- The opaque handle (pointer) which was passed to the user function.
- dataName (integer)
- Symbolic name of the requested data.
- UDF_PBC_VELOCITY
- Velocity.
- UDF_PBC_ACCELERATION
- Acceleration.
- UDF_PBC_PRESSURE
- Pressure.
- UDF_PBC_TEMPERATURE
- Temperature.
- UDF_PBC_SPECIES
- Species.
- UDF_PBC_EDDY_VISCOSITY
- Turbulence eddy viscosity.
- UDF_PBC_KINETIC_ENERGY
- Turbulence kinetic energy.
- UDF_PBC_EDDY_FREQUENCY
- Turbulence eddy frequency.
- UDF_PBC_MESH_DISPLACEMENT
- Mesh displacement.
- UDF_PBC_MESH_VELOCITY
- Mesh velocity.
Return Value
- data (Real*)
- Pointer to two or three dimensional real array of the requested data. The dimensions of the
array depend on dataName as follows. nItems is the number of
node-pairs. If the third dimension is one, then the array may be treated as two
dimensional. The last non-trivial dimension is two for each of the two nodes in a
node-pair.
dataName First Dimension Second Dimension Third Dimension UDF_PBC_VELOCITY nItems 3 2 UDF_PBC_ACCLERATION nItems 3 2 UDF_PBC_PRESSURE nItems 2 1 UDF_PBC_TEMPERATURE nItems 2 1 UDF_PBC_SPECIES nItems udfGetNumSpecs() 2 UDF_PBC_EDDY_VISCOSITY nItems 2 1 UDF_PBC_KINETIC_ENERGY nItems 2 1 UDF_PBC_EDDY_FREQUENCY nItems 2 1 UDF_PBC_MESH_DISPLACEMENT nItems 3 2 UDF_PBC_MESH_VELOCITY nItems 3 2
Description
This routine returns the requested solution data for the node-pairs. For
example,
Real* data ;
Real u_1, v_1, w_1, u_2, v_2, w_2 ;
Real spec_1, spec_2 ;
Integer pair, nSpecs, specId ;
...
data = udfGetPbcData( udfHd, UDF_PBC_VELOCITY ) ;
for ( pair = 0 ; pair < nItems ; pair++ ) {
/* velocity at first node */
u_1 = data[0*nItems+pair] ;
v_1 = data[1*nItems+pair] ;
w_1 = data[2*nItems+pair] ;
/* velocity at second node */
u_2 = data[3*nItems+pair] ;
v_2 = data[4*nItems+pair] ;
w_2 = data[5*nItems+pair] ;
...
}
...
data = udfGetPbcData( udfHd, UDF_PBC_SPECIES ) ;
nSpecs = udfGetNumSpecs( udfHd ) ;
for ( specId = 0 ; specId < nSpecs ; specId++ ) {
for ( pair = 0 ; pair < nItems ; pair++ ) {
/* species at first node */
spec_1 = data[specId*nItems+pair] ;
/* species at second node */
spec_2 = data[(nSpecs+specId)*nItems+pair] ;
...
}
}
Errors
- This routine expects a valid udfHd.
- This routine may only be called within a Periodic Boundary Condition user function.
- dataName must be one of the values given above.
- The problem must contain the equation associated with the requested data.