udfGetNbcAuxData()

Return nodal solution data for the nodal boundary condition at the auxiliary nodes.

Syntax

auxdata = udfGetNbcAuxData( udfHd, dataName ) ;

Type

AcuSolve User-Defined Nodal Boundary Condition

Parameters

udfHd
The opaque handle (pointer) which was passed to the user function.
dataName (integer)
Symbolic name of the requested data.
UDF_NBC_VELOCITY
Velocity.
UDF_NBC_ACCELERATION
Acceleration.
UDF_NBC_PRESSURE
Pressure.
UDF_NBC_TEMPERATURE
Temperature.
UDF_NBC_SPECIES
Species.
UDF_NBC_EDDY_VISCOSITY
Turbulence eddy viscosity.
UDF_NBC_KINETIC_ENERGY
Turbulence kinetic energy.
UDF_NBC_EDDY_FREQUENCY
Turbulence eddy frequency.
UDF_NBC_MESH_DISPLACEMENT
Mesh displacement.
UDF_NBC_MESH_VELOCITY
Mesh velocity.
UDF_NBC_TURBULENCE_Y
Distance to nearest turbulence wall.
UDF_NBC_TURBULENCE_YPLUS
Turbulence y+ based on distance to nearest turbulence wall and shear at that wall.

Return Value

auxdata (Real*)

Pointer to three dimensional real array of the requested data at the auxiliary nodes. The dimensions of the array depend on dataName as follows. nAuxs is the number of auxiliary nodes. If either the second or third dimension is one, then the array may be treated as two dimensional. If both are one, then the array may be treated as one dimensional.

dataName First Dimension Second Dimension Third Dimension
UDF_NBC_VELOCITY nItems nAuxs 3
UDF_NBC_ACCLERATION nItems nAuxs 3
UDF_NBC_PRESSURE nItems nAuxs 1
UDF_NBC_TEMPERATURE nItems nAuxs 1
UDF_NBC_SPECIES nItems nAuxs udfGetNumSpecs()
UDF_NBC_EDDY_VISCOSITY nItems nAuxs 1
UDF_NBC_KINETIC_ENERGY nItems nAuxs 1
UDF_NBC_EDDY_FREQUENCY nItems nAuxs 1
UDF_NBC_MESH_DISPLACEMENT nItems nAuxs 3
UDF_NBC_MESH_VELOCITY nItems nAuxs 3
UDF_NBC_TURBULENCE_Y nItems nAuxs 1
UDF_NBC_TURBULENCE_YPLUS nItems nAuxs 1

Description

This routine returns the requested nodal solution data at the auxiliary nodes. For example,
Real* auxData ;
Real u, v, w ;
Real spec ;
Integer node, nSpecs, specId ;
...
udfCheckNbcNumAuxs( udfHd, 1 ) ;
auxData = udfGetNbcAuxData( udfHd, UDF_NBC_VELOCITY ) ;
for ( node = 0 ; node < nItems ; node++ ) {
  u = auxData[0*nItems+node] ;
  v = auxData[1*nItems+node] ; 
  w = auxData[2*nItems+node] ;
  ...
}
...
auxData = udfGetNbcAuxData( udfHd, UDF_NBC_SPECIES ) ;
nSpecs = udfGetNumSpecs( udfHd ) ;
for ( specId = 0 ; specId < nSpecs ; specId++ ) {
  for ( node = 0 ; node < nItems ; node++ ) {
     spec = auxData[specId*nItems+node] ;
     ...
  }
}

The quantities UDF_NBC_TURBULENCE_Y and UDF_NBC_TURBULENCE_YPLUS are based on the distance to the nearest turbulence wall. These are defined by TURBULENCE_WALL and SIMPLE_BOUNDARY_CONDITIONtype=wall commands. UDF_NBC_TURBULENCE_YPLUS also uses the shear at these walls.

Errors

  • This routine expects a valid udfHd.
  • This routine may only be called within an Nodal Boundary Condition user function.
  • dataName must be one of the values given above.
  • The problem must contain the equation associated with the requested data.
  • The corresponding command must have a valid auxiliary_nodes parameter.