Skip to main content

Curle

Description

The Curle function object computes the acoustic pressure based on Curle's analogy.

Curle's analogy is implemented as:

p=14πrr2(Fr+1c0dFdt) p' = \frac{1}{4 \pi} \frac{\vec{r}}{| \vec{r} | ^2} \cdot \left( \frac{\vec{F}}{| \vec{r} |} + \frac{1}{c_0}\frac{d\vec{F}}{dt} \right)

where:

pp' : Curle's acoustic pressure [Pa] or [Pa (m3/kg)]

c0c_0 : Reference speed of sound [m/s]

r\vec{r} : Distance vector to observer locations [m]

F\vec{F} : Force [N] or [N (m3/kg)]

tt : Time [s]

Operands

OperandTypeLocation
input--
output file 1dat$FOAM_CASE/postProcessing/<FO>/<time>/<file>
output file 2surface file$FOAM_CASE/<outputDir>/<time>/<surfaceName>
output field--

Usage

Example of the Curle function object by using functions sub-dictionary in system/controlDict file:

Curle1
{
// Mandatory entries (unmodifiable)
type Curle;
libs (fieldFunctionObjects);
input <point|surface>;
output <point|surface>;
patches (<patch1> <patch2> ... <patchN>);
c0 343;

// Conditional mandatory entries (runtime modifiable)
// if input=point
observerPositions (<point1> <point2> ... <pointN>);

// if input=surface
surface <surfaceFileName>; // "inputSurface.obj";

// if output=surface
surfaceType <surfaceType>; // ensight;
formatOptions
{
vtk
{
format ascii;
}
}

// Optional entries (runtime modifiable)
p p;

// Optional (inherited) entries
writePrecision 8;
writeToFile true;
useUserTime true;
region region0;
enabled true;
log true;
timeStart 0;
timeEnd 1000;
executeControl timeStep;
executeInterval 1;
writeControl timeStep;
writeInterval 1;
}

where the entries mean:

PropertyDescriptionTypeRequiredDefault
typeType name: Curlewordyes-
libsLibrary name: fieldFunctionObjectswordyes-
patchesSound generation patch nameswordListyes-
c0Reference speed of soundscalaryes-
inputInput typewordyes-
outputOutput typewordyes-
pPressure field namewordnop
observerPositionsList of observer positions (x y z)pointListconditional-
surfaceInput surface file namewordconditional-
surfaceTypeOutput surface typewordconditional-
formatOptionsDictionary of surface format optionsdictionaryconditional-

The inherited entries are elaborated in:

Options for the input and output entries:

point | Operand is a set of points
surface | Operand is a surface

Usage by the postProcess utility is not available.

Notes on entries

  • Only the normal-pressure force is included in the force calculation.

Further information

Tutorial:

Source code:

API:

History: Introduced in version v1706