HDK
|
#include <SIM_RawField.h>
Classes | |
struct | sim_advectParms |
struct | sim_extrapolateCacheElem |
struct | sim_extrapolateFromIndexParms |
struct | sim_particleToFieldParms |
Public Types | |
enum | REDUCE_NAMES { REDUCE_MAX, REDUCE_MIN, REDUCE_AVERAGE, REDUCE_SUM, REDUCE_SUMABS, REDUCE_SUMSQUARE, REDUCE_RMS, REDUCE_MEDIAN, REDUCE_MAXABS, REDUCE_MINABS } |
Types of reductions supported by reduceOp. More... | |
enum | MIX_NAMES { MIX_COPY, MIX_ADD, MIX_SUB, MIX_MUL, MIX_DIV, MIX_MAX, MIX_MIN, MIX_AVERAGE, NUM_MIX } |
enum | PCG_METHOD { PCG_NONE, PCG_JACOBI, PCG_CHOLESKY, PCG_MIC } |
Static Public Member Functions | |
static fpreal | toHeaviside (fpreal val, fpreal diam) |
Perform heaviside & inverse heaviside in a consistent fashion. More... | |
static fpreal | fromHeaviside (fpreal val, fpreal diam) |
static fpreal64 | getCurvatureAtProbe (UT_VoxelROProbeCubeF &probe, const UT_Vector3 &invvoxelsize) |
Computes the curvature according to a 3^3 voxel probe. More... | |
static void | advect (UT_Vector3 &pos, const SIM_RawField *velx, const SIM_RawField *vely, const SIM_RawField *velz, float time, const SIM_RawField *collision=0, float cfl=1.0F) |
Verbs that can be performed on these fields. More... | |
static void | advect (UT_Vector3 &pos, sim_PointVelocity getVelocity, float time, float voxelsize, int jobnum=0, const SIM_RawField *collision=0, float cfl=1.0F) |
static void | advectMidpoint (UT_Vector3 &pos, const SIM_RawField *velx, const SIM_RawField *vely, const SIM_RawField *velz, float time, const SIM_RawField *collision=0, float cfl=1.0F) |
Advect a point with the midpoint method. More... | |
static void | advectMidpoint (UT_Vector3 &pos, sim_PointVelocity getVelocity, float time, float voxelsize, int jobnum=0, const SIM_RawField *collision=0, float cfl=1.0F) |
static void | advectRK3 (UT_Vector3 &pos, const SIM_RawField *velx, const SIM_RawField *vely, const SIM_RawField *velz, float time, const SIM_RawField *collision=0, float cfl=1.0F) |
Advect a point with TVD-RK3 method. More... | |
static void | advectRK4 (UT_Vector3 &pos, const SIM_RawField *velx, const SIM_RawField *vely, const SIM_RawField *velz, float time, const SIM_RawField *collision=0, float cfl=1.0F) |
Advect a point with TVD-RK4 method. More... | |
static fpreal | mixValues (MIX_NAMES mixtype, fpreal d, fpreal s) |
Performs the requires mixing. More... | |
static fpreal | applyParticleToFieldParms (fpreal srcval, fpreal dstval, const sim_particleToFieldParms &parms) |
static void | diffuse (float *dstdata, const float *srcdata[3][3][3], float b, float ivsx, float ivsy, float ivsz, int tx, int ty, int max_xtile, int max_ytile, int max_xvox, int max_yvox) |
Raw diffuse algorithm, exposed only for external performance tests. More... | |
Static Protected Member Functions | |
static fpreal | applyBoundary (SIM_FieldBoundary bound, fpreal v, fpreal boundval) |
Definition at line 108 of file SIM_RawField.h.
Enumerator | |
---|---|
MIX_COPY | |
MIX_ADD | |
MIX_SUB | |
MIX_MUL | |
MIX_DIV | |
MIX_MAX | |
MIX_MIN | |
MIX_AVERAGE | |
NUM_MIX |
Definition at line 860 of file SIM_RawField.h.
Enumerator | |
---|---|
PCG_NONE | |
PCG_JACOBI | |
PCG_CHOLESKY | |
PCG_MIC |
Definition at line 1033 of file SIM_RawField.h.
Types of reductions supported by reduceOp.
Enumerator | |
---|---|
REDUCE_MAX | |
REDUCE_MIN | |
REDUCE_AVERAGE | |
REDUCE_SUM | |
REDUCE_SUMABS | |
REDUCE_SUMSQUARE | |
REDUCE_RMS | |
REDUCE_MEDIAN | |
REDUCE_MAXABS | |
REDUCE_MINABS |
Definition at line 425 of file SIM_RawField.h.
SIM_RawField::SIM_RawField | ( | ) |
|
virtual |
SIM_RawField::SIM_RawField | ( | const SIM_RawField & | src | ) |
Copy constructor:
void SIM_RawField::accumulateParticles | ( | const GU_Detail * | particles, |
sim_particleToFieldParms & | parms, | ||
const GA_PointGroup * | ptgrp = NULL |
||
) |
Adds the value to the given voxel cell, averaging out among adjacent samples if we aren't sampled evenly.
void SIM_RawField::adopt | ( | UT_VoxelArrayF * | newf | ) |
Adopts the heap-allocated voxel array. If the new voxel array is not of the right size, this field is left untouched, and the new voxel array is deleted.
|
static |
Verbs that can be performed on these fields.
Advect a point in space according to an array of velocity fields.
|
static |
void SIM_RawField::advect | ( | const SIM_RawField * | source, |
const SIM_RawField * | velx, | ||
const SIM_RawField * | vely, | ||
const SIM_RawField * | velz, | ||
float | time, | ||
const SIM_RawField * | collision, | ||
SIM_FieldAdvection | advectmethod, | ||
float | cfl | ||
) |
Advect the source field by the given set of velocity fields, setting this to the result. Source cannot be this. this and source are assumed to match.
|
static |
Advect a point with the midpoint method.
|
static |
void SIM_RawField::advectMinMax | ( | const SIM_RawField * | source, |
SIM_RawField * | minf, | ||
SIM_RawField * | maxf, | ||
const SIM_RawField * | velx, | ||
const SIM_RawField * | vely, | ||
const SIM_RawField * | velz, | ||
float | time, | ||
const SIM_RawField * | collision, | ||
SIM_FieldAdvection | advectmethod, | ||
float | cfl | ||
) |
void SIM_RawField::advectMinMaxSelf | ( | SIM_RawField * | minfield, |
SIM_RawField * | maxfield, | ||
const SIM_RawField * | velx, | ||
const SIM_RawField * | vely, | ||
const SIM_RawField * | velz, | ||
float | time, | ||
const SIM_RawField * | collision, | ||
SIM_FieldAdvection | advectmethod, | ||
float | cfl | ||
) |
Like advectSelf, but also generates min/max fields.
|
static |
Advect a point with TVD-RK3 method.
|
static |
Advect a point with TVD-RK4 method.
void SIM_RawField::advectSelf | ( | const SIM_RawField * | velx, |
const SIM_RawField * | vely, | ||
const SIM_RawField * | velz, | ||
float | time, | ||
const SIM_RawField * | collision, | ||
SIM_FieldAdvection | advectmethod, | ||
float | cfl | ||
) |
Advect this field by the given velocity fields. Invokes advect but handles the creation of the intermediate field.
void SIM_RawField::advectSelf | ( | sim_PointVelocity | getVelocity, |
float | time, | ||
float | voxelsize, | ||
const SIM_RawField * | collision, | ||
float | cfl | ||
) |
|
staticprotected |
|
inlinestatic |
Definition at line 931 of file SIM_RawField.h.
|
inline |
Prebuilt versions.
Definition at line 445 of file SIM_RawField.h.
SIM_BoundaryLine SIM_RawField::boundaryLineToIndex | ( | const SIM_BoundaryLine & | worldbline | ) | const |
Converts the boundary line information from world space to local index space. This applies an inverse transform to the plane normal and regular transform to the height value to put both into index space.
|
inline |
Inplace box blur. Radius is in world coordinates.
Definition at line 454 of file SIM_RawField.h.
void SIM_RawField::buildFromGeo | ( | const GEO_PrimVolume * | vol, |
const UT_DMatrix4 & | xform, | ||
fpreal | scale | ||
) |
Builds from a GEO_PrimVolume.
void SIM_RawField::buildFromPrim | ( | const GEO_Primitive * | vol, |
int | volidx, | ||
const UT_DMatrix4 & | xform, | ||
fpreal | scale | ||
) |
Builds from either a GEO_PrimVolume or a GEO_PrimVDB. The provided volidx is the index inside of a vector volume to use for the building.
fpreal64 SIM_RawField::calculateDerivative | ( | int | x, |
int | y, | ||
int | z, | ||
int | axis, | ||
bool | positivegradient | ||
) | const |
Calculate the derivitive along the specified axis using an HJ WENO method at the given index. The boolean determines whether the derivitive in the positive or negative direction is computed.
fpreal64 SIM_RawField::calculateHJWENO | ( | fpreal64 | v1, |
fpreal64 | v2, | ||
fpreal64 | v3, | ||
fpreal64 | v4, | ||
fpreal64 | v5 | ||
) | const |
Giving the relevent divided differences, compute the HJWENO approxmiation of the derivative.
bool SIM_RawField::cellIndexToPos | ( | int | x, |
int | y, | ||
int | z, | ||
UT_Vector3 & | pos | ||
) | const |
Convert voxel cell indices to world coordinates and vice-versa. Returns values at cell centers. Is equivalent to the indexToPos style functions only when sampling is CENTER.
void SIM_RawField::clearGrid | ( | ) | const |
void SIM_RawField::computeConnectedComponents | ( | UT_VoxelArray< int64 > & | comp, |
int & | numcomponent | ||
) | const |
Determine all components connected according to < 0 semantic.
void SIM_RawField::computeSDFWeightsFacePartial | ( | const SIM_RawField * | sdf, |
int | axis, | ||
bool | invert, | ||
fpreal | minweight, | ||
const UT_JobInfo & | info | ||
) |
|
inline |
Compute fractional volume weights representing the amount the voxel surrounding each sample point is inside the provided SDF. This method just subsamples the voxel space according to the samplesperaxis parameter.
Definition at line 1238 of file SIM_RawField.h.
void SIM_RawField::computeSDFWeightsVolumeFractionPartial | ( | const SIM_RawField * | sdf, |
bool | invert, | ||
fpreal | minweight, | ||
const UT_JobInfo & | info | ||
) |
fpreal SIM_RawField::computeVoxelSDFWeightFace | ( | int | x, |
int | y, | ||
int | z, | ||
const SIM_RawField * | sdf, | ||
int | axis | ||
) | const |
Compute fractional volume weights for the voxel specified by x, y, z. This method uses the normalized area of the square that is in the plane given by the axis parameter as an approximation.
void SIM_RawField::convertToHeavisidePartial | ( | const UT_JobInfo & | info | ) |
Sets this to the heaviside function of itself. this = clamp(-this/diam+0.5, 0, 1)
void SIM_RawField::diffuse | ( | fpreal | diffrate, |
int | numiter, | ||
const SIM_RawField * | collision = 0 |
||
) |
Solve the diffusion equation over this field according to the given diffusion rate. One likely wants to roll the desired timestep into the diffusion rate.
|
static |
Raw diffuse algorithm, exposed only for external performance tests.
void SIM_RawField::enforceBoundary | ( | SIM_FieldBoundary | collisionboundary = SIM_BOUNDARY_NONE , |
const SIM_RawField * | collision = 0 , |
||
const SIM_RawField * | cvalue = 0 , |
||
const SIM_RawField * | boundary = 0 , |
||
const SIM_BoundaryLine & | indexbline = SIM_BoundaryLine() |
||
) |
Enforces the boundary conditions on this field. Each axis can have its own conditions The boundary line is expected to be in index space
void SIM_RawField::enforceBoundaryFlat | ( | fpreal32 * | values, |
const SIM_RawIndexField * | collision_lookup | ||
) |
Enforces the boundary conditions onto a flat array using the dimensions of this. Does SAME boundaries for collision objects. Index field is where to copy from for each collision voxel.
void SIM_RawField::enforceCollisionBoundary | ( | SIM_FieldBoundary | boundary, |
const SIM_RawField * | collision, | ||
const SIM_RawField * | cvalue = 0 |
||
) |
void SIM_RawField::enforceSideBoundary | ( | int | axis, |
int | side, | ||
SIM_FieldBoundary | bound, | ||
fpreal | boundaryvalue, | ||
const SIM_BoundaryLine & | indexbline = SIM_BoundaryLine() , |
||
const SIM_RawField * | boundaryfield = 0 |
||
) |
void SIM_RawField::enforceSideBoundaryFlat | ( | fpreal32 * | values, |
int | axis, | ||
int | side, | ||
SIM_FieldBoundary | bound, | ||
fpreal | boundval | ||
) |
void SIM_RawField::extrapolate | ( | const SIM_RawField * | depths, |
const SIM_RawField * | valid, | ||
fpreal | isocontour, | ||
fpreal | dir, | ||
fpreal | maxdist, | ||
bool | clamp, | ||
fpreal | clampval | ||
) |
Extrapolates the values of this field to all locations which are on the wrong side of the isocontour. dir == 1 means greater than isocontour is wrong, dir == -1 is less than. maxdist, if not negative, represents the greatest absolute distance to extrapolate to. Values outside of this are left unaffected, unless clamp is set, in which case they are set to clampval.
void SIM_RawField::extrapolateFromIndex | ( | const SIM_RawField * | depths, |
const SIM_RawIndexField * | index, | ||
const SIM_RawField * | collision, | ||
const SIM_RawField * | valid, | ||
const GU_Detail * | gdp, | ||
const UT_DMatrix4 & | xform, | ||
fpreal | isocontour, | ||
fpreal | isotol, | ||
fpreal | dir, | ||
fpreal | maxdist, | ||
bool | clamp, | ||
fpreal | clampval | ||
) |
Extrapolates the values of this field to all locations which are on the wrong side of the isocontour. dir == 1 means greater than isocontour is wrong, dir == -1 is less than. maxdist, if not negative, represents the greatest absolute distance to extrapolate to. Values outside of this are left unaffected, unless clamp is set, in which case they are set to clampval. The extrpolated values are found by interpolating at the position of the closest points in the provided GU_Detail, as stored in the index field by point index.
void SIM_RawField::extrapolateFromIndexInternalPartial | ( | sim_extrapolateFromIndexParms & | p, |
const UT_JobInfo & | info | ||
) |
|
inline |
Fetches the raw field.
Definition at line 502 of file SIM_RawField.h.
|
inline |
Definition at line 503 of file SIM_RawField.h.
fpreal SIM_RawField::findProportionalValue | ( | fpreal | position, |
const SIM_RawField * | mask, | ||
bool | maskissdf | ||
) | const |
Sorts the valid voxels (as defined by optional mask) and returns the given percentile voxel. 0.5 means median. 0.25 first quartile, etc.
|
inline |
Definition at line 534 of file SIM_RawField.h.
|
inline |
Definition at line 535 of file SIM_RawField.h.
UT_VoxelBorderType SIM_RawField::getBorder | ( | ) | const |
These adjust the native UT_VoxelArray border values that are used for reading outside the valid range.
float SIM_RawField::getBorderValue | ( | ) | const |
|
inline |
Definition at line 1163 of file SIM_RawField.h.
Definition at line 1167 of file SIM_RawField.h.
Returns an averaged value for the center of the given voxel.
const UT_VoxelCompressOptions& SIM_RawField::getCompressionOptions | ( | ) | const |
fpreal SIM_RawField::getCompressionTolerance | ( | ) | const |
fpreal64 SIM_RawField::getCurvature | ( | UT_Vector3 | pos | ) | const |
Returns the curvature of the field at a given world space location. Uses interpolation of index based getCurvatureAtIndex.
Computes the curvature at the given voxel index. Uses central differencing. The resulting curvature is clamped according to the resolution of the field to avoid abnormally large values in noisy data.
|
static |
Computes the curvature according to a 3^3 voxel probe.
Computes K |grad(phi|), the curvature times the length of the gradient. By folding the two operations, we can return a non-zero value where grad goes to zero (but curvature doesn't) using L'Hospital's rule. This also does not clamp the curvature.
UT_Vector3 SIM_RawField::getGradient | ( | UT_Vector3 | pos | ) | const |
Return the gradient of the field at the given world space location. Uses central differencing with a sample spacing of the voxelsize.
UT_Vector3 SIM_RawField::getGradientAtIndex | ( | int | x, |
int | y, | ||
int | z | ||
) | const |
Returns the gradient at the given voxel index. Uses central differencing.
fpreal64 SIM_RawField::getLaplacian | ( | UT_Vector3 | pos | ) | const |
Computes the laplacian of the field at the world space coordinate using interpolation of getLaplacianAtIndex
Computes the laplacian of the field at the specific voxel index specified
int64 SIM_RawField::getMemoryUsage | ( | ) | const |
|
inline |
Definition at line 532 of file SIM_RawField.h.
void SIM_RawField::getPartialRange | ( | UT_VoxelArrayIteratorF & | vit, |
const UT_JobInfo & | info | ||
) | const |
Initializes the voxel iterator to only run over a subset of tiles that correspond to the appropriate range for the jobinfo.
|
inline |
Definition at line 545 of file SIM_RawField.h.
void SIM_RawField::getSamplePattern | ( | SIM_FieldSample | sample, |
int | x, | ||
int | y, | ||
int | z, | ||
int & | numsample, | ||
int * | ix, | ||
int * | iy, | ||
int * | iz, | ||
bool | clamp | ||
) | const |
Returns the set of samples in this field which correspond to the given location & sampling pattern. ix, iy, and iz should be size 8. If you want the deltas for the sampling pattern, call with x, y, z zero and clamp to false.
UT_Vector3 SIM_RawField::getSampleVoxelOffset | ( | SIM_FieldSample | sample | ) | const |
Returns an offset, in voxel coords, to sample this field giving a voxel based address in a field with sampling pattern sample. The offset will be 0.5, 0, or -0.5 in each axis.
|
inline |
Definition at line 533 of file SIM_RawField.h.
fpreal SIM_RawField::getValue | ( | UT_Vector3 | pos | ) | const |
Functions to resolve quantities about the field.
Sample the field at the given world space location.
fpreal SIM_RawField::getValueIndex | ( | UT_Vector3I | index | ) | const |
Returns the field value at the given voxel.
|
inline |
Definition at line 539 of file SIM_RawField.h.
Returns the resolution of the voxel grid that we are sampling. This is a count of voxels, so may differ for our different sampling methods.
UT_Vector3I SIM_RawField::getVoxelRes | ( | ) | const |
|
inline |
Definition at line 536 of file SIM_RawField.h.
|
inline |
Definition at line 540 of file SIM_RawField.h.
|
inline |
Returns the actual number of samples in each resolution. Preferred over field()->getXRes() as it doesn't require a copy of the CE fields.
Definition at line 558 of file SIM_RawField.h.
|
inline |
Definition at line 559 of file SIM_RawField.h.
|
inline |
Definition at line 560 of file SIM_RawField.h.
CE_Grid* SIM_RawField::grid | ( | ) | const |
Fetches the compute grid, returns 0 if not present.
|
inline |
Returns true if the OpenCL grid has more up-to-date data than the voxel array.
Definition at line 516 of file SIM_RawField.h.
|
inline |
Returns true if our field has any NANs.
Definition at line 495 of file SIM_RawField.h.
bool SIM_RawField::indexToPos | ( | int | x, |
int | y, | ||
int | z, | ||
UT_Vector3 & | pos | ||
) | const |
Convert indices to world coordinates and vice-versa. Note this uses this field's indices which change depending on sampling.
bool SIM_RawField::indexToPos | ( | exint | x, |
exint | y, | ||
exint | z, | ||
UT_Vector3D & | pos | ||
) | const |
bool SIM_RawField::indexToPos | ( | UT_Vector3I | index, |
UT_Vector3 & | pos | ||
) | const |
UT_Vector3 SIM_RawField::indexToPos | ( | UT_Vector3I | index | ) | const |
void SIM_RawField::init | ( | SIM_FieldSample | sample, |
const UT_Vector3 & | orig, | ||
const UT_Vector3 & | size, | ||
int | xres, | ||
int | yres, | ||
int | zres | ||
) |
Initializes the field. The resolution given is in terms of voxels, the actual dimensions of this field may be slightly different due to the sampling choice.
void SIM_RawField::init | ( | SIM_FieldSample | sample, |
const UT_Vector3 & | orig, | ||
const UT_Vector3 & | size, | ||
int | xres, | ||
int | yres, | ||
int | zres, | ||
const UT_Vector3 & | voxelsize | ||
) |
void SIM_RawField::init | ( | SIM_FieldSample | sample, |
const UT_Vector3 & | orig, | ||
const UT_Vector3 & | size, | ||
UT_VoxelArrayF * | voxels | ||
) |
Initializes the field. Will gain ownership of the given voxel array.
void SIM_RawField::init | ( | SIM_FieldSample | sample, |
const UT_Vector3 & | orig, | ||
const UT_Vector3 & | size, | ||
UT_VoxelArrayF * | voxels, | ||
const UT_Vector3 & | voxelsize | ||
) |
bool SIM_RawField::isAligned | ( | const SIM_RawField * | field | ) | const |
Returns true if the two fields are precisely aligned. This means that samples are matched so a given integer index into either field would give the same result.
bool SIM_RawField::isAligned | ( | const SIM_RawIndexField * | field | ) | const |
bool SIM_RawField::isAligned | ( | const GEO_PrimVolume * | vold | ) | const |
bool SIM_RawField::isColocated | ( | const SIM_RawField * | field, |
UT_Vector3I & | offset | ||
) | const |
Returns true if two fields have voxels aligned. They do not have to be of the same resolution or share origin. However, using the offset
allows to access this field with index of the other field. i.e. field->indexToPos(index) == this->indexToPos(index + offset)
bool SIM_RawField::isColocated | ( | const SIM_RawIndexField * | field, |
UT_Vector3I & | offset | ||
) | const |
bool SIM_RawField::isMatching | ( | const SIM_RawField * | field | ) | const |
Returns true if the given field and this one match in terms of number of voxels and bounding box size. This means the voxel cells match - not necessarily the sample points!
bool SIM_RawField::isMatching | ( | const SIM_RawIndexField * | field | ) | const |
|
protected |
|
protected |
Reduce along a given axis by the specified radius in voxels.
|
protected |
|
protected |
|
protected |
Reduction by reducing each axis in turn. This will change field and dst != field is required.
void SIM_RawField::localReduceOp | ( | REDUCE_NAMES | op, |
const UT_Vector3 & | radius | ||
) |
Performs a localized reduction on the field. Stores in this the result of the reduction. Radius is in world coordinates.
void SIM_RawField::makeConstant | ( | float | cval | ) |
Initializes this field to a constant value.
|
inline |
Mark the field as out of date, but only if we have a valid grid.
Definition at line 512 of file SIM_RawField.h.
void SIM_RawField::match | ( | const SIM_RawField & | src | ) |
Initializes this to be the same dimensions, sampling pattern, etc, of the given field. The values of this may be reset to zero.
void SIM_RawField::match | ( | const SIM_RawIndexField & | src | ) |
Performs the requires mixing.
Definition at line 873 of file SIM_RawField.h.
Advances this field along the field's curvature. Is given a total amount to move and will calculate the appropriate timestep according to the given cfl condition & min/max iterations.
void SIM_RawField::moveAlongNormalMidpoint | ( | const SIM_RawField & | speed, |
const SIM_RawField & | source, | ||
fpreal | timestep, | ||
fpreal | bandwidth | ||
) |
Uses the midpoint method to do a second order temporal update of the moveAlongNormal algorithm.
bool SIM_RawField::movePtToIso | ( | UT_Vector3 & | pos, |
fpreal | goaliso, | ||
fpreal | maxtime, | ||
fpreal | tol = 1e-4 |
||
) | const |
Move a point to the given isooffset. Returns false if fails to complete the move in the given time.
void SIM_RawField::negatePartial | ( | const UT_JobInfo & | info | ) |
Negates all values in this field.
const SIM_RawField& SIM_RawField::operator= | ( | const SIM_RawField & | src | ) |
Assigment operator:
bool SIM_RawField::posToCellIndex | ( | UT_Vector3 | pos, |
int & | x, | ||
int & | y, | ||
int & | z | ||
) | const |
bool SIM_RawField::posToIndex | ( | UT_Vector3 | pos, |
int & | x, | ||
int & | y, | ||
int & | z | ||
) | const |
Converts a worldspace position into an integer index.
bool SIM_RawField::posToIndex | ( | UT_Vector3 | wpos, |
UT_Vector3 & | ipos | ||
) | const |
UT_Vector3I SIM_RawField::posToIndex | ( | UT_Vector3 | pos | ) | const |
bool SIM_RawField::posToIndex | ( | UT_Vector3 | pos, |
int & | x, | ||
int & | y, | ||
int & | z, | ||
fpreal & | dx, | ||
fpreal & | dy, | ||
fpreal & | dz | ||
) | const |
Converts worldspace position into an integer index + the lerp values required to interpolate. Lerp with (1-dx) * (x,y,z) + dx * (x+1,y,z)
fpreal SIM_RawField::reduceMaskedOp | ( | REDUCE_NAMES | op, |
const SIM_RawField * | mask, | ||
bool | maskissdf | ||
) | const |
Performs the reduction only including parts of the field that match the given mask. If mask is null, falls through to normal reduction.
fpreal SIM_RawField::reduceOp | ( | REDUCE_NAMES | op | ) | const |
Perform reduction on the field using the given method The internal methods are helpers to deal with the threading collating.
Performs the reinitialization equation. This solves for: dphi/dt + S(phi0) * (|grad(phi)| - 1) = 0 at steady state. S(phi0) = phi0 / sqrt(phi0^2 + dx^2), a smeared sign function. It is held constant for the reinitialization. Usemidpoint indicates using midpoint integration vs. Euler. Any parts of the SDF past the bandwidth are assumed to already be a valid SDF and not require reinitialization.
CE_Grid* SIM_RawField::requireGrid | ( | ) | const |
Fetches the compute grid but throws cl::Error() on failure.
void SIM_RawField::resample | ( | SIM_FieldSample | sample, |
const SIM_RawField * | src | ||
) |
Initializes this to be the same as the given field. The values of this will be found by resampling the other field with the new sampling pattern.
void SIM_RawField::setAsExtrapolatedField | ( | UT_Vector3 | scale | ) |
Mark this field as being an extrapolated field. Out of bound voxels will read the clamped value. The difference between the clamped position and the real position is then dot producted with the given scale factor and added to the resulting value. This allows you to have rest fields that extrapolate meaningfully.
void SIM_RawField::setBorder | ( | UT_VoxelBorderType | border, |
float | bval | ||
) |
|
inline |
These boundary conditions do not apply to reading outside of the valid field range. The native UT_VoxelArray boundary condition is used for that. Instead, they are used for the behaviour of enforceBoundary and by various places where we want to distinguish open velocity fields from closed.
Definition at line 1161 of file SIM_RawField.h.
Definition at line 1165 of file SIM_RawField.h.
Ensures the given voxel cell has the given value. This will set all of the adjacent samples if we aren't sampled evenly.
void SIM_RawField::setCompressionOptions | ( | const UT_VoxelCompressOptions & | options | ) |
These adjust the native UT_VoxelArray comrpression options.
These adjust the native UT_VoxelArray comrpression tolerance..
|
inline |
Definition at line 537 of file SIM_RawField.h.
|
inline |
Returns true if this should be multithreaded.
Definition at line 149 of file SIM_RawField.h.
void SIM_RawField::solvePressure | ( | const SIM_RawField * | divergence, |
const SIM_RawField * | collision, | ||
int | numiter = 20 |
||
) |
Solves the pressure field that would eliminate the given divergence field.
void SIM_RawField::solvePressurePCG | ( | const SIM_RawField & | divergence, |
SIM_RawIndexField & | index, | ||
SIM_VectorField * | vel, | ||
const SIM_RawIndexField * | comp = 0 , |
||
const UT_IntArray * | expandable = 0 , |
||
const SIM_RawField * | surface = 0 , |
||
bool | variational = true , |
||
bool | ghostfluid = true , |
||
PCG_METHOD | pcgmethod = PCG_MIC |
||
) |
|
protected |
|
protected |
UT_VoxelArrayF* SIM_RawField::steal | ( | ) |
Steals the voxel array, leaving this pointing to a 0 constant array
void SIM_RawField::testForNan | ( | ) | const |
Tests for nans, outputs text and asserts if has any Only runs if the test environment variable is set.
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
extrapolateFromIndexInternal | , | ||
sim_extrapolateFromIndexParms & | , | ||
parms | |||
) |
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
scale | , | ||
fpreal | , | ||
scale | |||
) |
Scales all values in this field.
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
maximum | , | ||
const SIM_RawField * | , | ||
other | |||
) | const |
Makes this field the minimum or maximum of this field and the other field. The other field is not assumed to be matching.
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
minimum | , | ||
const SIM_RawField * | , | ||
other | |||
) | const |
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
average | , | ||
const SIM_RawField & | , | ||
other | |||
) | const |
Averages this with the other field. Result in this. Assumes fields match.
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectSingleMinMax | , | ||
const sim_advectParms & | , | ||
parms | |||
) | const |
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectTraceMinMax | , | ||
const sim_advectParms & | , | ||
parms | |||
) | const |
SIM_RawField::THREADED_METHOD1 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectMultistepMinMax | , | ||
const sim_advectParms & | , | ||
parms | |||
) | const |
SIM_RawField::THREADED_METHOD2 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
addValuePerComponent | , | ||
const UT_DoubleArray & | , | ||
valuelist | , | ||
const SIM_RawIndexField * | , | ||
comp | |||
) | const |
Adds to this field the value given per component. Negative components neglected.
SIM_RawField::THREADED_METHOD2 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
smearedSign | , | ||
const SIM_RawField & | , | ||
sdf | , | ||
fpreal | , | ||
bandwidth | |||
) | const |
Sets this to the smeared sign function of the given sdf. this = sdf / sqrt(sdf*sdf + bandwidth*bandwidth) this must already match sdf.
SIM_RawField::THREADED_METHOD2 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
enforceCollisionBoundaryFlat | , | ||
fpreal32 * | , | ||
values | , | ||
const SIM_RawIndexField * | , | ||
collision_lookup | |||
) |
|
protected |
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
moveAlongCurvature | , | ||
fpreal | , | ||
b_val | , | ||
const SIM_RawField & | , | ||
source | , | ||
fpreal | , | ||
timestep | |||
) |
Advances source field along the field's curvature. Takes a given b to act as the movement coefficient. Does a single euler step. this is filled in with the resulting field. this cannot be source. This solves: dphi/dt = b * K * |grad(phi)|
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
setScaleAdd | , | ||
const SIM_RawField & | , | ||
A | , | ||
fpreal | , | ||
scale | , | ||
const SIM_RawField & | , | ||
B | |||
) | const |
Sets this to A + s*B. A & B match this. This can be either A or B, or neither.
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
applyParticles | , | ||
const GU_Detail * | , | ||
particles | , | ||
GEO_PointTreeGAOffset * | , | ||
pttree | , | ||
sim_particleToFieldParms & | , | ||
parms | |||
) | const |
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
buildDivergenceFace | , | ||
const SIM_VectorField * | , | ||
vel | , | ||
const SIM_RawField * | , | ||
surface | , | ||
const SIM_RawField * | , | ||
stencil | |||
) | const |
Computes the divergence of the face-centered velocity field and stores the result in this. this must match the velocity field. If stencil is provided (and surface is not), the divergence is only calculated in the areas where stencil value is greater than 0.5 (with the remaining regions left untouched). stencil field must be aligned with this.
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
enforceCollisionBoundaryInternal | , | ||
SIM_FieldBoundary | , | ||
boundary | , | ||
const SIM_RawField * | , | ||
collision | , | ||
const SIM_RawField * | , | ||
cvalue | |||
) |
SIM_RawField::THREADED_METHOD3 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
computeSDFWeightsVolumeFraction | , | ||
const SIM_RawField * | , | ||
sdf | , | ||
bool | , | ||
invert | , | ||
fpreal | , | ||
minweight | |||
) |
Compute fractional volume weights representing the amount the voxel surrounding each sample point is inside the provided SDF. This method uses accurate volume fractions.
|
protected |
SIM_RawField::THREADED_METHOD3_CONST | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
sumPerComponent | , | ||
UT_DoubleArray & | , | ||
result | , | ||
UT_Int64Array & | , | ||
activevoxels | , | ||
const SIM_RawIndexField * | , | ||
comp | |||
) |
Sums the field into separate summation lists, one per component of the comp index field. Negative components ignored, the given arrays should already be sized to fit the maxindex.
SIM_RawField::THREADED_METHOD4 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
moveAlongNormal | , | ||
const SIM_RawField & | , | ||
speed | , | ||
const SIM_RawField & | , | ||
source | , | ||
fpreal | , | ||
timestep | , | ||
fpreal | , | ||
bandwidth | |||
) | const |
Advances source field along the field's normal direction. Takes a matching field which defines the speed to move in the normal direction on a per cell basis. Past the bandwidth assumes a valid SDF and skips gradient estimates. Does a single euler step. this is filled in with the resulting field. this cannot be source. This solves: dphi/dt + speed * |grad(phi)| = 0
SIM_RawField::THREADED_METHOD4 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
addValueToComponent | , | ||
double | , | ||
value | , | ||
int | , | ||
compnum | , | ||
const SIM_RawIndexField * | , | ||
comp | , | ||
const SIM_RawField * | , | ||
pressureboundary | |||
) |
SIM_RawField::THREADED_METHOD4 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
gaussSeidelIteration | , | ||
const SIM_RawField * | , | ||
B | , | ||
fpreal32 | , | ||
weight | , | ||
fpreal32 | , | ||
sumweight | , | ||
int | , | ||
parity | |||
) | const |
SIM_RawField::THREADED_METHOD4 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
computeSDFWeightsFace | , | ||
const SIM_RawField * | , | ||
sdf | , | ||
int | , | ||
axis | , | ||
bool | , | ||
invert | , | ||
fpreal | , | ||
minweight | |||
) |
Compute fractional volume weights representing the amount the voxel surrounding each sample point is inside the provided SDF. This method uses the normalized area of the square that is in the plane given by the axis parameter as an approximation.
SIM_RawField::THREADED_METHOD4 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
setScaleDivideThreshold | , | ||
fpreal | , | ||
scale | , | ||
const SIM_RawField * | , | ||
B | , | ||
const SIM_RawField * | , | ||
C | , | ||
fpreal | , | ||
threshold | |||
) |
Scale this field by s * B / C or set to zero if scaled value is lower than given threshold
|
protected |
SIM_RawField::THREADED_METHOD4_CONST | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
gaussSeidelIterationFlat | , | ||
fpreal32 * | , | ||
A | , | ||
fpreal32 | , | ||
weight | , | ||
fpreal32 | , | ||
sumweight | , | ||
int | , | ||
parity | |||
) |
SIM_RawField::THREADED_METHOD4_CONST | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
gaussSeidelIterationFlat2D | , | ||
fpreal32 * | , | ||
A | , | ||
fpreal32 | , | ||
weight | , | ||
fpreal32 | , | ||
sumweight | , | ||
int | , | ||
parity | |||
) |
|
protected |
Again a triple specialization to engage threading.
|
protected |
|
protected |
SIM_RawField::THREADED_METHOD5 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectHJWENO | , | ||
const SIM_RawField & | , | ||
source | , | ||
const SIM_RawField * | , | ||
velx | , | ||
const SIM_RawField * | , | ||
vely | , | ||
const SIM_RawField * | , | ||
velz | , | ||
fpreal | , | ||
timestep | |||
) | const |
Advects the field using HJWENO.
SIM_RawField::THREADED_METHOD5 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectUpwind | , | ||
const SIM_RawField & | , | ||
source | , | ||
const SIM_RawField * | , | ||
velx | , | ||
const SIM_RawField * | , | ||
vely | , | ||
const SIM_RawField * | , | ||
velz | , | ||
fpreal | , | ||
timestep | |||
) | const |
Advects the field using upwind.
SIM_RawField::THREADED_METHOD5 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
buoyancy | , | ||
const SIM_RawField * | , | ||
stencil | , | ||
const SIM_RawField * | , | ||
temperature | , | ||
fpreal | , | ||
up | , | ||
fpreal | , | ||
Tamb | , | ||
fpreal | , | ||
buoyancy | |||
) | const |
SIM_RawField::THREADED_METHOD5_CONST | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
sumComponent | , | ||
double & | , | ||
result | , | ||
int64 & | , | ||
activevoxels | , | ||
int | , | ||
compnum | , | ||
const SIM_RawIndexField * | , | ||
comp | , | ||
const SIM_RawField * | , | ||
pressureboundary | |||
) |
|
protected |
SIM_RawField::THREADED_METHOD6 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advect2 | , | ||
const SIM_RawField * | , | ||
source | , | ||
sim_PointVelocity | , | ||
getVelocity | , | ||
float | , | ||
time | , | ||
float | , | ||
voxelsize | , | ||
const SIM_RawField * | , | ||
collision | , | ||
float | , | ||
cfl | |||
) | const |
SIM_RawField::THREADED_METHOD7 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectSingle | , | ||
const SIM_RawField * | , | ||
source | , | ||
const SIM_RawField * | , | ||
velx | , | ||
const SIM_RawField * | , | ||
vely | , | ||
const SIM_RawField * | , | ||
velz | , | ||
float | , | ||
time | , | ||
const SIM_RawField * | , | ||
collision | , | ||
float | , | ||
cfl | |||
) | const |
SIM_RawField::THREADED_METHOD7 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectTrace | , | ||
const SIM_RawField * | , | ||
source | , | ||
const SIM_RawField * | , | ||
velx | , | ||
const SIM_RawField * | , | ||
vely | , | ||
const SIM_RawField * | , | ||
velz | , | ||
float | , | ||
time | , | ||
const SIM_RawField * | , | ||
collision | , | ||
float | , | ||
cfl | |||
) | const |
SIM_RawField::THREADED_METHOD8 | ( | SIM_RawField | , |
shouldMultiThread() | , | ||
advectMultistep | , | ||
const SIM_RawField * | , | ||
source | , | ||
const SIM_RawField * | , | ||
velx | , | ||
const SIM_RawField * | , | ||
vely | , | ||
const SIM_RawField * | , | ||
velz | , | ||
float | , | ||
time | , | ||
const SIM_RawField * | , | ||
collision | , | ||
float | , | ||
cfl | , | ||
SIM_FieldAdvection | , | ||
advectmethod | |||
) | const |
|
protected |
Methods for extrapolation.
Perform heaviside & inverse heaviside in a consistent fashion.
void SIM_RawField::updateFieldFromGrid | ( | ) | const |
Copies our grid into our field.
void SIM_RawField::updateGridFromField | ( | ) | const |
Copies our field into the grid.
void SIM_RawField::waveletComputePSD | ( | const SIM_RawField * | wavelet, |
int | level | ||
) |
Computes the sum of squares of the given level's detail vector.
void SIM_RawField::waveletExtractComponent | ( | const SIM_RawField * | wavelet, |
int | level, | ||
int | component | ||
) |
Extracts the given component from a packed wavelet array.
void SIM_RawField::waveletInverseTransform | ( | UT_Wavelet::WAVELET_NAMES | wavelettype, |
const SIM_RawField * | wavelet, | ||
int | maxpasses = -1 |
||
) |
|
protected |
void SIM_RawField::waveletTransform | ( | UT_Wavelet::WAVELET_NAMES | wavelettype, |
const SIM_RawField * | field, | ||
int | maxpasses = -1 |
||
) |
Transform turns this into a packed set of wavelet coeffecients from the scalar data in field. Inverse unpacks and generates a scalar field into this.
Using a smooth edge conditon we assume that in case of an odd sized field, the ultimate row has zero diff coefficients. We thus store the extra column in the averages side of the matrix, for ceil(n/2) in the averages and floor(n/2) in the diffs. Note this causes 3d fields that are actually 2d to properly decompose.
UT_Int64Array& SIM_RawField::activevoxels |
Definition at line 355 of file SIM_RawField.h.
int64& SIM_RawField::activevoxels |
Definition at line 366 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float const SIM_RawField float SIM_FieldAdvection SIM_RawField::advectmethod |
Definition at line 802 of file SIM_RawField.h.
fpreal const SIM_RawField& SIM_RawField::B |
Definition at line 399 of file SIM_RawField.h.
const SIM_RawField* SIM_RawField::B |
Definition at line 1312 of file SIM_RawField.h.
const SIM_RawField fpreal fpreal SIM_RawField::bandwidth |
Definition at line 298 of file SIM_RawField.h.
fpreal SIM_RawField::bandwidth |
Definition at line 409 of file SIM_RawField.h.
const SIM_RawField fpreal fpreal fpreal SIM_RawField::buoyancy |
Definition at line 855 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField* SIM_RawField::C |
Definition at line 1312 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float const SIM_RawField float SIM_RawField::cfl |
Definition at line 755 of file SIM_RawField.h.
sim_PointVelocity float float const SIM_RawField float SIM_RawField::cfl |
Definition at line 971 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float const SIM_RawField * SIM_RawField::collision |
Definition at line 755 of file SIM_RawField.h.
sim_PointVelocity float float const SIM_RawField* SIM_RawField::collision |
Definition at line 971 of file SIM_RawField.h.
const SIM_RawField* SIM_RawField::collision |
Definition at line 1131 of file SIM_RawField.h.
const SIM_RawIndexField* SIM_RawField::collision_lookup |
Definition at line 1147 of file SIM_RawField.h.
UT_Int64Array const SIM_RawIndexField* SIM_RawField::comp |
Definition at line 355 of file SIM_RawField.h.
int64 int const SIM_RawIndexField* SIM_RawField::comp |
Definition at line 366 of file SIM_RawField.h.
const SIM_RawIndexField* SIM_RawField::comp |
Definition at line 378 of file SIM_RawField.h.
int const SIM_RawIndexField* SIM_RawField::comp |
Definition at line 387 of file SIM_RawField.h.
Definition at line 366 of file SIM_RawField.h.
int SIM_RawField::compnum |
Definition at line 387 of file SIM_RawField.h.
UT_VoxelArrayF UT_VoxelArrayF float const UT_JobInfo &info SIM_RawField::const { localReduceAxisOp<2>(op, dst, field, radius, info) |
Definition at line 355 of file SIM_RawField.h.
int64 int const SIM_RawIndexField const SIM_RawField const UT_JobInfo& info SIM_RawField::const |
Definition at line 366 of file SIM_RawField.h.
fpreal32 fpreal32 int const UT_JobInfo& info SIM_RawField::const |
Definition at line 1085 of file SIM_RawField.h.
|
protected |
Definition at line 1329 of file SIM_RawField.h.
|
protected |
Definition at line 1337 of file SIM_RawField.h.
|
protected |
Definition at line 1417 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField* SIM_RawField::cvalue |
Definition at line 1131 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1398 of file SIM_RawField.h.
|
protected |
Definition at line 1398 of file SIM_RawField.h.
sim_PointVelocity SIM_RawField::getVelocity |
Definition at line 971 of file SIM_RawField.h.
const SIM_RawIndexField const UT_JobInfo & SIM_RawField::info |
Definition at line 298 of file SIM_RawField.h.
const UT_JobInfo& SIM_RawField::info |
Definition at line 328 of file SIM_RawField.h.
const SIM_RawIndexField const UT_JobInfo& SIM_RawField::info |
Definition at line 378 of file SIM_RawField.h.
int const SIM_RawIndexField const SIM_RawField const UT_JobInfo& SIM_RawField::info |
Definition at line 387 of file SIM_RawField.h.
fpreal const UT_JobInfo& SIM_RawField::info |
Definition at line 409 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float const SIM_RawField float const UT_JobInfo& SIM_RawField::info |
Definition at line 755 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float const SIM_RawField float SIM_FieldAdvection const UT_JobInfo& SIM_RawField::info |
Definition at line 802 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField fpreal const UT_JobInfo& SIM_RawField::info |
Definition at line 825 of file SIM_RawField.h.
const SIM_RawField fpreal fpreal fpreal const UT_JobInfo& SIM_RawField::info |
Definition at line 855 of file SIM_RawField.h.
GEO_PointTreeGAOffset sim_particleToFieldParms const UT_JobInfo& SIM_RawField::info |
Definition at line 956 of file SIM_RawField.h.
sim_PointVelocity float float const SIM_RawField float const UT_JobInfo& SIM_RawField::info |
Definition at line 971 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const UT_JobInfo& SIM_RawField::info |
Definition at line 1029 of file SIM_RawField.h.
fpreal32 fpreal32 int const UT_JobInfo& SIM_RawField::info |
Definition at line 1069 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1439 of file SIM_RawField.h.
|
protected |
Definition at line 1449 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
const UT_JobInfo & SIM_RawField::jobinfo |
Definition at line 272 of file SIM_RawField.h.
const UT_JobInfo& SIM_RawField::jobinfo |
Definition at line 339 of file SIM_RawField.h.
fpreal const SIM_RawField const UT_JobInfo& SIM_RawField::jobinfo |
Definition at line 399 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField fpreal const UT_JobInfo& SIM_RawField::jobinfo |
Definition at line 1312 of file SIM_RawField.h.
|
protected |
Definition at line 1337 of file SIM_RawField.h.
|
protected |
Definition at line 1337 of file SIM_RawField.h.
|
protected |
Definition at line 1337 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1470 of file SIM_RawField.h.
|
protected |
Definition at line 1470 of file SIM_RawField.h.
|
protected |
Definition at line 1475 of file SIM_RawField.h.
|
protected |
Definition at line 1476 of file SIM_RawField.h.
|
protected |
We always have myField at our current resolution. myGrid only exists if it matches myField. If myField changes, myGrid will be destroyed. If something updates the grid the field is out of date so is flagged.
Definition at line 1461 of file SIM_RawField.h.
|
mutableprotected |
Definition at line 1463 of file SIM_RawField.h.
|
mutableprotected |
Definition at line 1462 of file SIM_RawField.h.
|
protected |
Definition at line 1467 of file SIM_RawField.h.
|
protected |
Definition at line 1454 of file SIM_RawField.h.
|
protected |
Definition at line 1467 of file SIM_RawField.h.
|
protected |
Definition at line 1473 of file SIM_RawField.h.
|
protected |
Definition at line 1472 of file SIM_RawField.h.
|
protected |
Definition at line 1329 of file SIM_RawField.h.
|
protected |
Definition at line 1337 of file SIM_RawField.h.
Definition at line 1069 of file SIM_RawField.h.
GEO_PointTreeGAOffset sim_particleToFieldParms& SIM_RawField::parms |
Definition at line 956 of file SIM_RawField.h.
int64 int const SIM_RawIndexField const SIM_RawField* SIM_RawField::pressureboundary |
Definition at line 366 of file SIM_RawField.h.
int const SIM_RawIndexField const SIM_RawField* SIM_RawField::pressureboundary |
Definition at line 387 of file SIM_RawField.h.
GEO_PointTreeGAOffset* SIM_RawField::pttree |
Definition at line 956 of file SIM_RawField.h.
|
protected |
Definition at line 1398 of file SIM_RawField.h.
fpreal SIM_RawField::scale |
Definition at line 399 of file SIM_RawField.h.
|
protected |
Definition at line 1439 of file SIM_RawField.h.
|
protected |
Definition at line 1449 of file SIM_RawField.h.
const SIM_RawField & SIM_RawField::source |
Definition at line 272 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField* SIM_RawField::stencil |
Definition at line 1029 of file SIM_RawField.h.
Definition at line 1069 of file SIM_RawField.h.
const SIM_RawField* SIM_RawField::surface |
Definition at line 1029 of file SIM_RawField.h.
const SIM_RawField fpreal fpreal SIM_RawField::Tamb |
Definition at line 855 of file SIM_RawField.h.
const SIM_RawField* SIM_RawField::temperature |
Definition at line 855 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField fpreal SIM_RawField::threshold |
Definition at line 1312 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField float SIM_RawField::time |
Definition at line 755 of file SIM_RawField.h.
sim_PointVelocity float SIM_RawField::time |
Definition at line 971 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField fpreal SIM_RawField::timestep |
Definition at line 272 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField fpreal SIM_RawField::timestep |
Definition at line 825 of file SIM_RawField.h.
const SIM_RawField fpreal SIM_RawField::up |
Definition at line 855 of file SIM_RawField.h.
|
protected |
Definition at line 1356 of file SIM_RawField.h.
|
protected |
Definition at line 1449 of file SIM_RawField.h.
const SIM_RawField * SIM_RawField::velx |
Definition at line 755 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField * SIM_RawField::vely |
Definition at line 755 of file SIM_RawField.h.
const SIM_RawField const SIM_RawField const SIM_RawField * SIM_RawField::velz |
Definition at line 755 of file SIM_RawField.h.
sim_PointVelocity float float SIM_RawField::voxelsize |
Definition at line 971 of file SIM_RawField.h.
fpreal32 SIM_RawField::weight |
Definition at line 1069 of file SIM_RawField.h.
|
protected |
Definition at line 1439 of file SIM_RawField.h.
|
protected |
Definition at line 1449 of file SIM_RawField.h.