PlasCom2  1.0
XPACC Multi-physics simluation application
operators Module Reference

Functions/Subroutines

subroutine applyoperator (numDim, dimSizes, numComponents, numPoints, opDir, opInterval, numStencils, stencilSizes, stencilStarts, numValues, stencilWeights, stencilOffsets, stencilID, U, dU)
 applyoperator applies an operator specified as a stencil set to the provided state data More...
 
subroutine applyoperatorv (numDim, dimSizes, numComponents, numPoints, opDir, opInterval, numStencils, stencilSizes, stencilStarts, numValues, stencilWeights, stencilOffsets, stencilID, U, dU)
 applyoperator applies an operator specified as a stencil set to the provided state data More...
 
subroutine applyoperatorblobs (numDim, dimSizes, numComponents, numPointsBuffer, opDir, numStencils, stencilSizes, stencilStarts, numStencilValues, stencilWeights, stencilOffsets, numPointsStencil, numPointsApply, stencilPoints, U, dU)
 applyoperatorblobs applies an operator by applying each stencil in turn to all the points to which it applies More...
 
subroutine applysinglestencil (numDim, dimSizes, numComponents, numPointsBuffer, opDir, numPointsApply, applyPoints, stencilSize, stencilWeights, stencilOffsets, U, dU)
 applysinglestencil applies an operator by applying a given stencil to the specified points More...
 
subroutine yaxpy (numDim, numPoints, bufferSize, bufferInterval, a, X, Y)
 YAXPY point-wise operator performing Y = aX + Y (scalar a) More...
 
subroutine zaxpy (numDim, numPoints, bufferSize, bufferInterval, a, X, Y, Z)
 ZAXPY point-wise operator performing Z = aX + Y (scalar a) More...
 
subroutine zaxpby (numDim, numPoints, bufferSize, bufferInterval, a, b, X, Y, Z)
 ZAXPBY point-wise operator performing Z = aX + bY (scalar a,b) More...
 
subroutine yaxpby (numDim, numPoints, bufferSize, bufferInterval, a, b, X, Y)
 YAXPBY point-wise operator performing Y = aX + bY (scalar a,b) More...
 
subroutine yax (numDim, numPoints, bufferSize, bufferInterval, a, X, Y)
 YAX point-wise operator performing Y = aX (scalar a) More...
 
subroutine zxy (numDim, numPoints, bufferSize, bufferInterval, X, Y, Z)
 ZXY point-wise operator performing Z = XY (all vectors) More...
 
subroutine yxy (numDim, numPoints, bufferSize, bufferInterval, X, Y)
 YXY point-wise operator performing Y = XY (all vectors) More...
 
subroutine zwxpy (numDim, numPoints, bufferSize, bufferInterval, W, X, Y, Z)
 ZWXPY point-wise operator performing Z = WX + Y, where all are vectors. More...
 
subroutine ywxpy (numDim, numPoints, bufferSize, bufferInterval, W, X, Y)
 YWXPY point-wise operator performing Y = WX + Y, where all are vectors. More...
 
subroutine zawpxy (numDim, numPoints, bufferSize, bufferInterval, a, W, X, Y, Z)
 ZAWPXY point-wise operator performing Z = aW + XY. More...
 
subroutine zvwpxy (numDim, numPoints, bufferSize, bufferInterval, V, W, X, Y, Z)
 ZVWPXY point-wise operator performing Z = VW + XY. More...
 
subroutine zwmxpy (numDim, numPoints, bufferSize, bufferInterval, W, X, Y, Z)
 ZWMXPY point-wise operator performing Z = W(X+Y) where all are vectors. More...
 
subroutine zxdoty (numDim, numPoints, bufferSize, bufferInterval, numComponents, X, Y, Z)
 ZXDOTY numComponents-vector inner product Z = X * Y. More...
 
subroutine xax (numDim, numPoints, bufferSize, bufferInterval, a, X)
 XAX point-wise operator performing X = aX (scalar a) More...
 
subroutine assignmentyx (numDim, numPoints, bufferSize, bufferInterval, X, Y)
 ASSIGNMENTYX point-wise operator performing Y = X. More...
 
subroutine assignmentxa (numDim, numPoints, bufferSize, bufferInterval, a, X)
 ASSIGNMENTXA point-wise operator performing X = scalar a. More...
 
subroutine assignmentyabsx (numDim, numPoints, bufferSize, bufferInterval, X, Y)
 ASSIGNMENTYABSX point-wise operator performing X = scalar a. More...
 
subroutine veclen (numDim, numPoints, bufferSize, bufferInterval, numComp, V, lenV)
 VECLEN point-wise operator returning the length of a numComp-dimensional vector. More...
 
subroutine yaxm1 (numDim, numPoints, bufferSize, bufferInterval, a, X, Y)
 YAXM1 point-wise operator performing Y = a/X (scalar a) More...
 
subroutine determinant3x3 (numPoints, bufferSize, bufferInterval, inMatrix, matrixDeterminant)
 Computes determinant of 3x3 matrix. More...
 
subroutine determinant2x2 (numPoints, bufferSize, bufferInterval, inMatrix, matrixDeterminant)
 Computes determinant of 2x2 matrix. More...
 
subroutine metricsum4 (numDim, numPoints, bufferSize, bufferInterval, buf1, buf2, buf3, buf4, buf5, buf6, buf7, metricSum)
 Computes buf1*buf4 - buf2*buf3 + buf7*(buf5 - buf6) More...
 
subroutine applyoperator (numDim, dimSizes, numComponents, numPoints, opDir, opInterval, numStencils, stencilSizes, stencilStarts, numValues, stencilWeights, stencilOffsets, stencilID, U, dU)
 applyoperator applies an operator specified as a stencil set to the provided state data More...
 
template<typename StateType >
StateType operator* (double inScalar, StateType &inState)
 
template<typename StateType >
void AXPY (double a, StateType &X, StateType &Y)
 
template<typename StateType >
void Zero (StateType &X)
 
template<typename StateType >
void Assign (StateType &X, StateType &Y)
 
template<typename StateType >
StateType Sum (StateType &X, StateType &Y)
 
template<typename StateType >
StateType Difference (StateType &X, StateType &Y)
 

Function/Subroutine Documentation

◆ applyoperator() [1/2]

subroutine operators::applyoperator ( integer(kind=4), intent(in)  numDim,
integer(kind=8), dimension(numdim), intent(in)  dimSizes,
integer(kind=4), intent(in)  numComponents,
integer(kind=8), intent(in)  numPoints,
integer(kind=4), intent(in)  opDir,
integer(kind=8), dimension(2*numdim), intent(in)  opInterval,
integer(kind=4), intent(in)  numStencils,
integer(kind=4), dimension(numstencils), intent(in)  stencilSizes,
integer(kind=4), dimension(numstencils), intent(in)  stencilStarts,
integer(kind=4), intent(in)  numValues,
real(kind=8), dimension(numvalues), intent(in)  stencilWeights,
integer(kind=4), dimension(numvalues), intent(in)  stencilOffsets,
integer(kind=4), dimension(numpoints), intent(in)  stencilID,
real(kind=8), dimension(numpoints*numcomponents), intent(in), target  U,
real(kind=8), dimension(numpoints*numcomponents), intent(out), target  dU 
)

applyoperator applies an operator specified as a stencil set to the provided state data

applyoperator is a brute-force method of applying a set of stencils to a given data buffer. The The stencilset and operand are given as flat, primitive arrays, with supporting data to indicate the size of the data structures. An additional stencil connectivity is given which indicates which stencil (i.e. which stencil from the stencil set) to apply to each point. This brute-force method simply loops through all points, and applies the stencil indicated by the resolved stencil connectivity to each point.

ApplyOperatorBrute.png
applyoperator brute-force method cartoon
Parameters
[in]numDimindicates the number of dimensions for the input data (dimSizes,opInterval)
[in]dimSizesindicates the number of points in each dimension [Nx Ny Nz]
[in]numComponentsindicates the number of components in the input/output data (U,dU)
[in]numPointsindicates the total number of points Nx*Ny*Nz
[in]opDirindicates in which direction the operator will be applied [X=1 | Y=2 | Z=3]
[in]opIntervalarray of size (2*numDim) which indicates the index interval on which to operate [xStart,xEnd,yStart,yEnd...]
[in]numStencilsindicates the number of stencils in the input stencilset
[in]stencilSizesarray of size (numStencils) which indicates the number of weight values for each stencil
[in]stencilStartsarray of size (numStencils) which indicates the starting index into (stencilWeights and stencilOffsets) for each stencil
[in]numValuestotal number of stencil weight values (numStencils[1]*numStencils[2]*...numStecils[numStencils]) (req'd for C/Fort interface)
[in]stencilWeightsarray of size (numValues) which contains the weights for all the stencils in the stencilset
[in]stencilOffsetsarray of size (numValues) which indicates the offsets from the considered point to the point where each weight is applied
[in]stencilIDarray of size (numPoints) which indicates the stencil ID for each point
[in]Uthe data on which to operate
[out]dUwhere to stuff the result

Definition at line 36 of file Operators.f90.

Referenced by rhs< GridT, StateT, OperatorT >::ApplyDissipationOperator(), rhs< GridT, StateT, OperatorT >::ApplyOperator(), plascom2::operators::sbp::BruteTest1(), Maxwell::ComputeCurl(), grid::computecurvilineargridmetrics(), parallel_blockstructured::ComputeCurvilinearMetrics2D(), parallel_blockstructured::ComputeMetricIdentities(), parallel_blockstructured::ComputeRectilinearMetrics(), parallel_blockstructured::CurvilinearMetrics(), parallel_blockstructured::GradIJK(), TestApplyOperatorAppl(), euler::uniformrhs(), and euler::uniformscalarrhs().

Here is the caller graph for this function:

◆ applyoperator() [2/2]

subroutine operators::applyoperator ( integer(kind=4), intent(in)  numDim,
integer(kind=8), dimension(numdim), intent(in)  dimSizes,
integer(kind=4), intent(in)  numComponents,
integer(kind=8), intent(in)  numPoints,
integer(kind=4), intent(in)  opDir,
integer(kind=8), dimension(2*numdim), intent(in)  opInterval,
integer(kind=4), intent(in)  numStencils,
integer(kind=4), dimension(numstencils), intent(in)  stencilSizes,
integer(kind=4), dimension(numstencils), intent(in)  stencilStarts,
integer(kind=4), intent(in)  numValues,
real(kind=8), dimension(numvalues), intent(in)  stencilWeights,
integer(kind=4), dimension(numvalues), intent(in)  stencilOffsets,
integer(kind=4), dimension(numpoints), intent(in)  stencilID,
real(kind=8), dimension(numpoints), intent(in)  U,
real(kind=8), dimension(numpoints), intent(out)  dU 
)

applyoperator applies an operator specified as a stencil set to the provided state data

applyoperator is a brute-force method of applying a set of stencils to a given data buffer. The The stencilset and operand are given as flat, primitive arrays, with supporting data to indicate the size of the data structures. An additional stencil connectivity is given which indicates which stencil (i.e. which stencil from the stencil set) to apply to each point. This brute-force method simply loops through all points, and applies the stencil indicated by the resolved stencil connectivity to each point.

ApplyOperatorBrute.png
applyoperator brute-force method cartoon
Parameters
[in]numDimindicates the number of dimensions for the input data (dimSizes,opInterval)
[in]dimSizesindicates the number of points in each dimension [Nx Ny Nz]
[in]numComponentsindicates the number of components in the input/output data (U,dU)
[in]numPointsindicates the total number of points Nx*Ny*Nz
[in]opDirindicates in which direction the operator will be applied [X=1 | Y=2 | Z=3]
[in]opIntervalarray of size (2*numDim) which indicates the index interval on which to operate [xStart,xEnd,yStart,yEnd...]
[in]numStencilsindicates the number of stencils in the input stencilset
[in]stencilSizesarray of size (numStencils) which indicates the number of weight values for each stencil
[in]stencilStartsarray of size (numStencils) which indicates the starting index into (stencilWeights and stencilOffsets) for each stencil
[in]numValuestotal number of stencil weight values (numStencils[1]*numStencils[2]*...numStecils[numStencils]) (req'd for C/Fort interface)
[in]stencilWeightsarray of size (numValues) which contains the weights for all the stencils in the stencilset
[in]stencilOffsetsarray of size (numValues) which indicates the offsets from the considered point to the point where each weight is applied
[in]stencilIDarray of size (numPoints) which indicates the stencil ID for each point
[in]Uthe data on which to operate
[out]dUwhere to stuff the result

Definition at line 36 of file ApplyOperator.f90.

References applysinglestencil().

Here is the call graph for this function:

◆ applyoperatorblobs()

subroutine applyoperatorblobs ( integer(kind=4), intent(in)  numDim,
integer(kind=8), dimension(numdim), intent(in)  dimSizes,
integer(kind=4), intent(in)  numComponents,
integer(kind=8), intent(in)  numPointsBuffer,
integer(kind=4), intent(in)  opDir,
integer(kind=4), intent(in)  numStencils,
integer(kind=4), dimension(numstencils), intent(in)  stencilSizes,
integer(kind=4), dimension(numstencils), intent(in)  stencilStarts,
integer(kind=4), intent(in)  numStencilValues,
real(kind=8), dimension(numstencilvalues), intent(in)  stencilWeights,
integer(kind=4), dimension(numstencilvalues), intent(in)  stencilOffsets,
integer(kind=8), dimension(numstencils), intent(in)  numPointsStencil,
integer(kind=8), intent(in)  numPointsApply,
integer(kind=8), dimension(numpointsapply), intent(in)  stencilPoints,
real(kind=8), dimension(numpointsbuffer), intent(in)  U,
real(kind=8), dimension(numpointsbuffer), intent(out)  dU 
)

applyoperatorblobs applies an operator by applying each stencil in turn to all the points to which it applies

applyoperatorblobs is a blobbed method of applying a set of stencils to a given data buffer. The stencilset and operand are given as flat, primitive arrays, with supporting data to indicate the size of the data structures. An additional dual stencil connectivity is given which indicates which points to apply to a given stencil. This blobbed method loops through all the stencils, and applies each stencil to the set of pionts indicated by the resolved dual stencil connectivity for each stencil.

ApplyOperatorBlobs.png
applyoperatorBLOBS - blobbed method cartoon
Parameters
[in]numDimindicates the number of dimensions for the input data (dimSizes,opInterval)
[in]dimSizesindicates the number of points in each dimension [Nx Ny Nz]
[in]numComponentsindicates the number of components in the input/output data (U,dU)
[in]numPointsBufferindicates the total number of points Nx*Ny*Nz
[in]opDirindicates in which direction the operator will be applied [X=1 | Y=2 | Z=3]
[in]numStencilsindicates the number of stencils in the input stencilset
[in]stencilSizesarray of size (numStencils) which indicates the number of weight values for each stencil
[in]stencilStartsarray of size (numStencils) which indicates the starting index into (stencilWeights and stencilOffsets) for each stencil
[in]numStencilValuestotal number of stencil weight values (numStencils[1]*numStencils[2]*...numStecils[numStencils]) (req'd for C/Fort interface)
[in]stencilWeightsarray of size (numValues) which contains the weights for all the stencils in the stencilset
[in]stencilOffsetsarray of size (numValues) which indicates the offsets from the considered point to the point where each weight is applied
[in]numPointsStencilarray of size (numStencils) which indicates how many points to apply each stencil
[in]numPointsApplytotal number of points in the stencilPoints array (needed for C/Fortran interface)
[in]stencilPointsarray of size (numPointsStencil(1)*numPointsStencil(2)*...numPointsStencil(numStencils)) indicating the points to which each stencil applies
[in]Uthe data on which to operate
[out]dUwhere to stuff the result

Definition at line 312 of file Operators.f90.

References applysinglestencil().

Referenced by TestApplyOperatorBlobs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ applyoperatorv()

subroutine operators::applyoperatorv ( integer(kind=4), intent(in)  numDim,
integer(kind=8), dimension(numdim), intent(in)  dimSizes,
integer(kind=4), intent(in)  numComponents,
integer(kind=8), intent(in)  numPoints,
integer(kind=4), intent(in)  opDir,
integer(kind=8), dimension(2*numdim), intent(in)  opInterval,
integer(kind=4), intent(in)  numStencils,
integer(kind=4), dimension(numstencils), intent(in)  stencilSizes,
integer(kind=4), dimension(numstencils), intent(in)  stencilStarts,
integer(kind=4), intent(in)  numValues,
real(kind=8), dimension(numvalues), intent(in)  stencilWeights,
integer(kind=4), dimension(numvalues), intent(in)  stencilOffsets,
integer(kind=4), dimension(numpoints), intent(in)  stencilID,
real(kind=8), dimension(numpoints*numcomponents), intent(in), target  U,
real(kind=8), dimension(numpoints*numcomponents), intent(out), target  dU 
)

applyoperator applies an operator specified as a stencil set to the provided state data

applyoperator is a brute-force method of applying a set of stencils to a given data buffer. The The stencilset and operand are given as flat, primitive arrays, with supporting data to indicate the size of the data structures. An additional stencil connectivity is given which indicates which stencil (i.e. which stencil from the stencil set) to apply to each point. This brute-force method simply loops through all points, and applies the stencil indicated by the resolved stencil connectivity to each point.

ApplyOperatorBrute.png
applyoperator brute-force method cartoon
Parameters
[in]numDimindicates the number of dimensions for the input data (dimSizes,opInterval)
[in]dimSizesindicates the number of points in each dimension [Nx Ny Nz]
[in]numComponentsindicates the number of components in the input/output data (U,dU)
[in]numPointsindicates the total number of points Nx*Ny*Nz
[in]opDirindicates in which direction the operator will be applied [X=1 | Y=2 | Z=3]
[in]opIntervalarray of size (2*numDim) which indicates the index interval on which to operate [xStart,xEnd,yStart,yEnd...]
[in]numStencilsindicates the number of stencils in the input stencilset
[in]stencilSizesarray of size (numStencils) which indicates the number of weight values for each stencil
[in]stencilStartsarray of size (numStencils) which indicates the starting index into (stencilWeights and stencilOffsets) for each stencil
[in]numValuestotal number of stencil weight values (numStencils[1]*numStencils[2]*...numStecils[numStencils]) (req'd for C/Fort interface)
[in]stencilWeightsarray of size (numValues) which contains the weights for all the stencils in the stencilset
[in]stencilOffsetsarray of size (numValues) which indicates the offsets from the considered point to the point where each weight is applied
[in]stencilIDarray of size (numPoints) which indicates the stencil ID for each point
[in]Uthe data on which to operate
[out]dUwhere to stuff the result

Definition at line 174 of file Operators.f90.

◆ applysinglestencil()

subroutine applysinglestencil ( integer(kind=4), intent(in)  numDim,
integer(kind=8), dimension(numdim), intent(in)  dimSizes,
integer(kind=4), intent(in)  numComponents,
integer(kind=8), intent(in)  numPointsBuffer,
integer(kind=4), intent(in)  opDir,
integer(kind=8), intent(in)  numPointsApply,
integer(kind=8), dimension(numpointsapply), intent(in)  applyPoints,
integer(kind=4), intent(in)  stencilSize,
real(kind=8), dimension(stencilsize), intent(in)  stencilWeights,
integer(kind=4), dimension(stencilsize), intent(in)  stencilOffsets,
real(kind=8), dimension(numpointsbuffer), intent(in)  U,
real(kind=8), dimension(numpointsbuffer), intent(out)  dU 
)

applysinglestencil applies an operator by applying a given stencil to the specified points

applysinglestencil is a single-stencil method which operates on the given points The stencil and operand are given as flat, primitive arrays, with supporting data to indicate the size of the data structures. An additional array of points is given which indicates the points on which to operate. This single-stencil method loops through all the specified points and applies the stencil to each.

ApplyOperatorBlobs.png
applyoperatorBLOBS - blobbed method cartoon
Parameters
[in]numDimindicates the number of dimensions for the input data (dimSizes,opInterval)
[in]dimSizesindicates the number of points in each dimension [Nx Ny Nz]
[in]numComponentsindicates the number of components in the input/output data (U,dU)
[in]numPointsBufferindicates the total number of points Nx*Ny*Nz
[in]opDirindicates in which direction the operator will be applied [X=1 | Y=2 | Z=3]
[in]numPointsApplytotal number of points in the stencilPoints array (needed for C/Fortran interface)
[in]applyPointsarray of size (numPointsApply) indicating the points to which to apply the stencil
[in]stencilSizenumber of stencil weights
[in]stencilWeightsarray of size (stencilSize) which contains the weights for all the stencils in the stencilset
[in]stencilOffsetsarray of size (stencilSize) which indicates the offsets from the considered point to the point where each weight is applied
[in]Uthe data on which to operate
[out]dUwhere to stuff the result

Definition at line 382 of file Operators.f90.

Referenced by applyoperator(), applyoperatorblobs(), and TestApplyOperatorBlobs().

Here is the caller graph for this function:

◆ Assign()

void operators::Assign ( StateType &  X,
StateType &  Y 
)
inline

Definition at line 28 of file StateOperators.H.

References X.

Referenced by TestStateOperations().

Here is the caller graph for this function:

◆ assignmentxa()

subroutine operators::assignmentxa ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(inout)  X 
)

◆ assignmentyabsx()

subroutine operators::assignmentyabsx ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(out)  Y 
)

ASSIGNMENTYABSX point-wise operator performing X = scalar a.

Definition at line 1275 of file Operators.f90.

Referenced by metricops::alphaweight(), and TestOperators().

Here is the caller graph for this function:

◆ assignmentyx()

subroutine operators::assignmentyx ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

ASSIGNMENTYX point-wise operator performing Y = X.

Definition at line 1170 of file Operators.f90.

Referenced by rhs< GridT, StateT, OperatorT >::ArtificialDissipation(), grid::computecurvilineargridmetrics(), and TestOperators().

Here is the caller graph for this function:

◆ AXPY()

void operators::AXPY ( double  a,
StateType &  X,
StateType &  Y 
)
inline

Definition at line 16 of file StateOperators.H.

References X.

Referenced by rk4advancer< DomainType >::AdvanceDomain(), and TestStateOperations().

Here is the caller graph for this function:

◆ determinant2x2()

subroutine operators::determinant2x2 ( integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(2), intent(in)  bufferSize,
integer(kind=8), dimension(4), intent(in)  bufferInterval,
real(kind=8), dimension(4*numpoints), intent(in)  inMatrix,
real(kind=8), dimension(numpoints), intent(inout)  matrixDeterminant 
)

Computes determinant of 2x2 matrix.

Definition at line 1501 of file Operators.f90.

Referenced by TestOperators().

Here is the caller graph for this function:

◆ determinant3x3()

subroutine operators::determinant3x3 ( integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(3), intent(in)  bufferSize,
integer(kind=8), dimension(6), intent(in)  bufferInterval,
real(kind=8), dimension(9*numpoints), intent(in)  inMatrix,
real(kind=8), dimension(numpoints), intent(inout)  matrixDeterminant 
)

Computes determinant of 3x3 matrix.

Definition at line 1449 of file Operators.f90.

Referenced by parallel_blockstructured::ComputeCurvilinearMetrics3D(), parallel_blockstructured::CurvilinearMetrics(), and TestOperators().

Here is the caller graph for this function:

◆ Difference()

StateType operators::Difference ( StateType &  X,
StateType &  Y 
)

Definition at line 40 of file StateOperators.H.

Referenced by TestStateOperations().

Here is the caller graph for this function:

◆ metricsum4()

subroutine operators::metricsum4 ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  buf1,
real(kind=8), dimension(numpoints), intent(in)  buf2,
real(kind=8), dimension(numpoints), intent(in)  buf3,
real(kind=8), dimension(numpoints), intent(in)  buf4,
real(kind=8), dimension(numpoints), intent(in)  buf5,
real(kind=8), dimension(numpoints), intent(in)  buf6,
real(kind=8), dimension(numpoints), intent(in)  buf7,
real(kind=8), dimension(numpoints), intent(inout)  metricSum 
)

Computes buf1*buf4 - buf2*buf3 + buf7*(buf5 - buf6)

Definition at line 1536 of file Operators.f90.

Referenced by parallel_blockstructured::ComputeCurvilinearMetrics3D(), and TestOperators().

Here is the caller graph for this function:

◆ operator*()

StateType operators::operator* ( double  inScalar,
StateType &  inState 
)
inline

Definition at line 7 of file StateOperators.H.

◆ Sum()

StateType operators::Sum ( StateType &  X,
StateType &  Y 
)

Definition at line 34 of file StateOperators.H.

Referenced by TestStateOperations().

Here is the caller graph for this function:

◆ veclen()

subroutine operators::veclen ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
integer(kind=4), intent(in)  numComp,
real(kind=8), dimension(numcomp*numpoints), intent(in)  V,
real(kind=8), dimension(numpoints), intent(out)  lenV 
)

VECLEN point-wise operator returning the length of a numComp-dimensional vector.

Definition at line 1328 of file Operators.f90.

Referenced by metricops::alphaweight(), and TestOperators().

Here is the caller graph for this function:

◆ xax()

subroutine operators::xax ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(inout)  X 
)

XAX point-wise operator performing X = aX (scalar a)

Definition at line 1119 of file Operators.f90.

Referenced by parallel_blockstructured::ComputeCurvilinearMetrics2D(), Maxwell::ComputeMaxwellRHS_Bfield(), metricops::ijkgradtoxyzdiv(), and TestOperators().

Here is the caller graph for this function:

◆ yax()

subroutine operators::yax ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(out)  Y 
)

YAX point-wise operator performing Y = aX (scalar a)

Definition at line 628 of file Operators.f90.

Referenced by metricops::gradijktogradxyz(), viscid::scalarflux1d(), viscid::strongflux1d(), TestOperators(), euler::uniformflux(), euler::uniformrhs(), metricops::vhatcomponent(), and viscid::viscidstronguniformflux().

Here is the caller graph for this function:

◆ yaxm1()

subroutine operators::yaxm1 ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(inout)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

◆ yaxpby()

subroutine operators::yaxpby ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), intent(in)  b,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

YAXPBY point-wise operator performing Y = aX + bY (scalar a,b)

Definition at line 577 of file Operators.f90.

Referenced by TestOperators().

Here is the caller graph for this function:

◆ yaxpy()

subroutine operators::yaxpy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

YAXPY point-wise operator performing Y = aX + Y (scalar a)

Definition at line 424 of file Operators.f90.

Referenced by metricops::ijkgradtoxyzdiv(), euler::uniformrhs(), and viscid::viscidstronguniformflux().

Here is the caller graph for this function:

◆ ywxpy()

subroutine operators::ywxpy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  W,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

YWXPY point-wise operator performing Y = WX + Y, where all are vectors.

Definition at line 835 of file Operators.f90.

Referenced by rhs< GridT, StateT, OperatorT >::ArtificialDissipation(), rhs< GridT, StateT, OperatorT >::ComputeViscidEnergyFlux(), metricops::gradijktogradxyz(), metricops::ijkgradtoxyzdiv(), viscid::strongflux1d(), TestOperators(), TestViscidKernels(), and TestViscidKernelsMetrics().

Here is the caller graph for this function:

◆ yxy()

subroutine operators::yxy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(inout)  Y 
)

◆ zawpxy()

subroutine operators::zawpxy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(in)  W,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZAWPXY point-wise operator performing Z = aW + XY.

Definition at line 887 of file Operators.f90.

Referenced by euler::flux1d(), and TestOperators().

Here is the caller graph for this function:

◆ zaxpby()

subroutine operators::zaxpby ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), intent(in)  b,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZAXPBY point-wise operator performing Z = aX + bY (scalar a,b)

Definition at line 526 of file Operators.f90.

Referenced by TestOperators().

Here is the caller graph for this function:

◆ zaxpy()

subroutine operators::zaxpy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), intent(in)  a,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZAXPY point-wise operator performing Z = aX + Y (scalar a)

Definition at line 475 of file Operators.f90.

◆ Zero()

void operators::Zero ( StateType &  X)
inline

Definition at line 22 of file StateOperators.H.

Referenced by FDSetMan::ListenForInput(), FDSetMan::ListenForOutput(), FDSetMan::Select(), and TestStateOperations().

Here is the caller graph for this function:

◆ zvwpxy()

subroutine operators::zvwpxy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  V,
real(kind=8), dimension(numpoints), intent(in)  W,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZVWPXY point-wise operator performing Z = VW + XY.

Definition at line 941 of file Operators.f90.

Referenced by euler::flux1d(), and TestOperators().

Here is the caller graph for this function:

◆ zwmxpy()

subroutine operators::zwmxpy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  W,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZWMXPY point-wise operator performing Z = W(X+Y) where all are vectors.

Definition at line 997 of file Operators.f90.

Referenced by euler::flux1d(), TestOperators(), euler::uniformflux(), and euler::uniformrhs().

Here is the caller graph for this function:

◆ zwxpy()

subroutine operators::zwxpy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  W,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZWXPY point-wise operator performing Z = WX + Y, where all are vectors.

Definition at line 782 of file Operators.f90.

Referenced by TestOperators(), euler::uniformflux(), euler::uniformrhs(), and viscid::viscidstronguniformflux().

Here is the caller graph for this function:

◆ zxdoty()

subroutine operators::zxdoty ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
integer(kind=4), intent(in)  numComponents,
real(kind=8), dimension(numpoints*numcomponents), intent(in)  X,
real(kind=8), dimension(numpoints*numcomponents), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)

ZXDOTY numComponents-vector inner product Z = X * Y.

Definition at line 1050 of file Operators.f90.

References assignmentxa().

Referenced by viscid::scalarflux1d(), viscid::strongflux1d(), TestOperators(), and metricops::vhatcomponent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zxy()

subroutine operators::zxy ( integer(kind=4), intent(in)  numDim,
integer(kind=8), intent(in)  numPoints,
integer(kind=8), dimension(numdim), intent(in)  bufferSize,
integer(kind=8), dimension(2*numdim), intent(in)  bufferInterval,
real(kind=8), dimension(numpoints), intent(in)  X,
real(kind=8), dimension(numpoints), intent(in)  Y,
real(kind=8), dimension(numpoints), intent(out)  Z 
)