#include <SIM_RawField.h>
Definition at line 85 of file SIM_RawField.h.
Types of reductions supported by reduceOp. not* necessarily matching GAS_Reduce!
| REDUCE_MAX | |
| REDUCE_MIN | |
| REDUCE_AVERAGE | |
| REDUCE_SUM | |
| REDUCE_SUMABS | |
| REDUCE_SUMSQUARE | |
| REDUCE_RMS |
Definition at line 259 of file SIM_RawField.h.
| SIM_RawField::SIM_RawField | ( | ) |
| virtual SIM_RawField::~SIM_RawField | ( | ) | [virtual] |
| SIM_RawField::SIM_RawField | ( | const SIM_RawField & | src | ) |
Copy constructor:.
| void SIM_RawField::addToCell | ( | int | x, | |
| int | y, | |||
| int | z, | |||
| fpreal | v | |||
| ) |
Adds the value to the given voxel cell, averaging out among adjacent samples if we aren't sampled evenly.
| static void SIM_RawField::advect | ( | UT_Vector3 & | pos, | |
| sim_PointVelocity | getVelocity, | |||
| fpreal | time, | |||
| fpreal | voxelsize, | |||
| int | jobnum = 0, |
|||
| const SIM_RawField * | collision = 0 | |||
| ) | [static] |
| static void SIM_RawField::advect | ( | UT_Vector3 & | pos, | |
| const SIM_RawField * | velx, | |||
| const SIM_RawField * | vely, | |||
| const SIM_RawField * | velz, | |||
| fpreal | time, | |||
| const SIM_RawField * | collision = 0 | |||
| ) | [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::advectMidpoint | ( | UT_Vector3 & | pos, | |
| sim_PointVelocity | getVelocity, | |||
| fpreal | time, | |||
| fpreal | voxelsize, | |||
| int | jobnum = 0, |
|||
| const SIM_RawField * | collision = 0 | |||
| ) | [static] |
| static void SIM_RawField::advectMidpoint | ( | UT_Vector3 & | pos, | |
| const SIM_RawField * | velx, | |||
| const SIM_RawField * | vely, | |||
| const SIM_RawField * | velz, | |||
| fpreal | time, | |||
| const SIM_RawField * | collision = 0 | |||
| ) | [static] |
Advect a point with the midpoint method.
| void SIM_RawField::advectSelf | ( | sim_PointVelocity | getVelocity, | |
| fpreal | time, | |||
| fpreal | voxelsize, | |||
| const SIM_RawField * | collision | |||
| ) |
| void SIM_RawField::advectSelf | ( | const SIM_RawField * | velx, | |
| const SIM_RawField * | vely, | |||
| const SIM_RawField * | velz, | |||
| fpreal | time, | |||
| const SIM_RawField * | collision, | |||
| SIM_FieldAdvection | advectmethod | |||
| ) |
Advect this field by the given velocity fields. Invokes advect but handles the creation of the intermediate field.
| static fpreal SIM_RawField::applyBoundary | ( | SIM_FieldBoundary | bound, | |
| fpreal | v, | |||
| fpreal | boundval | |||
| ) | [static, protected] |
| static fpreal64 SIM_RawField::applyMaskedReduction | ( | REDUCE_NAMES | op, | |
| fpreal64 | a, | |||
| fpreal64 | mask, | |||
| fpreal64 | b, | |||
| bool | final | |||
| ) | [static, protected] |
Similar but also interpets the mask.
| static fpreal64 SIM_RawField::applyReduction | ( | REDUCE_NAMES | op, | |
| fpreal64 | a, | |||
| fpreal64 | b, | |||
| bool | final | |||
| ) | [static, protected] |
Reduce a into b, b is assumed to have our cumaltive total. If final is true, it is assumed as is also an accumulation.
| fpreal SIM_RawField::average | ( | ) | const [inline] |
| 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::computeConnectedComponents | ( | UT_VoxelArray< int64 > & | comp, | |
| int & | numcomponent | |||
| ) | const |
Determine all components connected according to < 0 semantic.
| static void SIM_RawField::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 | |||
| ) | [static] |
Raw diffuse algorithm, exposed only for external performance tests.
| 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.
| void SIM_RawField::enforceBoundary | ( | SIM_FieldBoundary | collisionboundary = SIM_BOUNDARY_NONE, |
|
| const SIM_RawField * | collision = 0, |
|||
| const SIM_RawField * | cvalue = 0 | |||
| ) |
Enforces the boundary conditions on this field. Each axis can have its own conditions
| 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 | |||
| ) |
| void SIM_RawField::enforceSideBoundaryFlat | ( | fpreal32 * | values, | |
| int | axis, | |||
| int | side, | |||
| SIM_FieldBoundary | bound, | |||
| fpreal | boundval | |||
| ) |
| void SIM_RawField::extrapolate | ( | const SIM_RawField * | depths, | |
| 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.
| UT_VoxelArrayF* SIM_RawField::field | ( | ) | const [inline] |
Fetches the raw field.
Definition at line 304 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.
| const UT_Vector3& SIM_RawField::getBBoxOrig | ( | ) | const [inline] |
Definition at line 308 of file SIM_RawField.h.
| const UT_Vector3& SIM_RawField::getBBoxSize | ( | ) | const [inline] |
Definition at line 309 of file SIM_RawField.h.
| SIM_FieldBoundary SIM_RawField::getBoundary | ( | int | axis, | |
| int | side | |||
| ) | const [inline] |
Definition at line 712 of file SIM_RawField.h.
| fpreal SIM_RawField::getBoundaryValue | ( | int | axis, | |
| int | side | |||
| ) | const [inline] |
Definition at line 716 of file SIM_RawField.h.
| fpreal SIM_RawField::getCellValue | ( | int | x, | |
| int | y, | |||
| int | z | |||
| ) | const |
Returns an averaged value for the center of the given voxel.
| 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.
| fpreal64 SIM_RawField::getCurvatureAtIndex | ( | int | x, | |
| int | y, | |||
| int | z | |||
| ) | const |
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 fpreal64 SIM_RawField::getCurvatureAtProbe | ( | UT_VoxelProbeCubeF & | probe, | |
| const UT_Vector3 & | invvoxelsize | |||
| ) | [static] |
Computes the curvature according to a 3^3 voxel probe.
| fpreal64 SIM_RawField::getCurvatureTimesGradAtIndex | ( | int | x, | |
| int | y, | |||
| int | z | |||
| ) | const |
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
| fpreal64 SIM_RawField::getLaplacianAtIndex | ( | int | x, | |
| int | y, | |||
| int | z | |||
| ) | const |
Computes the laplacian of the field at the specific voxel index specified
| int64 SIM_RawField::getMemoryUsage | ( | ) | const |
| const UT_Vector3& SIM_RawField::getOrig | ( | ) | const [inline] |
Definition at line 306 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.
| static fpreal64 SIM_RawField::getReductionDefault | ( | REDUCE_NAMES | op | ) | [static, protected] |
| SIM_FieldSample SIM_RawField::getSample | ( | ) | const [inline] |
Definition at line 317 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.
| const UT_Vector3& SIM_RawField::getSize | ( | void | ) | const [inline] |
Definition at line 307 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::getVoxelDiameter | ( | ) | const [inline] |
Definition at line 311 of file SIM_RawField.h.
| void SIM_RawField::getVoxelRes | ( | int & | xres, | |
| int & | yres, | |||
| int & | zres | |||
| ) | const |
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.
| const UT_Vector3& SIM_RawField::getVoxelSize | ( | ) | const [inline] |
Definition at line 310 of file SIM_RawField.h.
| fpreal SIM_RawField::getVoxelVolume | ( | ) | const [inline] |
Definition at line 312 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.
| 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.
| bool SIM_RawField::isAligned | ( | const SIM_RawIndexField * | field | ) | const |
| 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::isMatching | ( | const SIM_RawIndexField * | field | ) | 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!
| void SIM_RawField::match | ( | const SIM_RawIndexField & | src | ) |
| 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.
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 | |||
| ) |
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.
| 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, | |||
| 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)
| bool SIM_RawField::posToIndex | ( | UT_Vector3 | pos, | |
| int & | x, | |||
| int & | y, | |||
| int & | z | |||
| ) | const |
Converts a worldspace position into an integer index.
| 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.
| void SIM_RawField::reinitializeSignedDistance | ( | int | maxiter | ) |
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.
| 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::setBoundary | ( | int | axis, | |
| int | side, | |||
| SIM_FieldBoundary | bound | |||
| ) | [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 710 of file SIM_RawField.h.
| void SIM_RawField::setBoundaryValue | ( | int | axis, | |
| int | side, | |||
| fpreal | v | |||
| ) | [inline] |
Definition at line 714 of file SIM_RawField.h.
| void SIM_RawField::setCellValue | ( | int | x, | |
| int | y, | |||
| int | z, | |||
| fpreal | v | |||
| ) |
Ensures the given voxel cell has the given value. This will set all of the adjacent samples if we aren't sampled evenly.
| bool SIM_RawField::shouldMultiThread | ( | ) | const [inline] |
| 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_PartitionedRawIndexField & | 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 | |||
| ) |
| void SIM_RawField::sortAllVoxels | ( | UT_FloatArray & | voxelvalues | ) | const [protected] |
| void SIM_RawField::sortAllVoxelsMasked | ( | UT_FloatArray & | voxelvalues, | |
| const SIM_RawField * | maskfield, | |||
| bool | maskissdf | |||
| ) | const [protected] |
| SIM_RawField::THREADED_METHOD | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| convertToHeaviside | ||||
| ) | const |
Sets this to the heaviside function of itself. this = clamp(-this/diam+0.5, 0, 1)
| SIM_RawField::THREADED_METHOD | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| negate | ||||
| ) | const |
Negates all values in this field.
| 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() | , | |||
| minimum | , | |||
| const SIM_RawField * | , | |||
| other | ||||
| ) | const |
| 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_METHOD2 | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| buildFromGeo | , | |||
| const GEO_PrimVolume * | , | |||
| vol | , | |||
| const UT_DMatrix4 & | , | |||
| xform | ||||
| ) | const |
| SIM_RawField::THREADED_METHOD2 | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| enforceCollisionBoundaryFlat | , | |||
| fpreal32 * | , | |||
| values | , | |||
| const SIM_RawIndexField * | , | |||
| collision_lookup | ||||
| ) |
| SIM_RawField::THREADED_METHOD2 | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| buildDivergenceFace | , | |||
| const SIM_VectorField * | , | |||
| vel | , | |||
| const SIM_RawField * | , | |||
| surface | ||||
| ) | const |
Computes the divergence of the face-centered velocity field and stores the result in this. this must match the velocity field.
| 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_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| reduceOpInternal | , | |||
| fpreal64 * | , | |||
| sum | , | |||
| REDUCE_NAMES | , | |||
| op | ||||
| ) | [protected] |
| SIM_RawField::THREADED_METHOD2_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| incompleteCholeskyFactorization | , | |||
| const SIM_RawSparseMatrix & | , | |||
| A | , | |||
| PCG_METHOD | , | |||
| pcgmethod | ||||
| ) | const |
Calculates the incomplete cholesky factorization.
| SIM_RawField::THREADED_METHOD2_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| incompleteCholeskyPreconditioner | , | |||
| const UT_VectorF & | , | |||
| b | , | |||
| UT_VectorF & | , | |||
| x | ||||
| ) | const |
Applies the incomplete cholesky preconditioner.
| 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() | , | |||
| 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() | , | |||
| moveAlongNormal | , | |||
| const SIM_RawField & | , | |||
| speed | , | |||
| const SIM_RawField & | , | |||
| source | , | |||
| fpreal | , | |||
| timestep | ||||
| ) | 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. 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_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_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| solveLowerTriangularSystems | , | |||
| const UT_PtrArray< SIM_RawSparseMatrix * > & | , | |||
| ld | , | |||
| UT_RefArray< UT_VectorF > & | , | |||
| ys | , | |||
| const UT_RefArray< UT_VectorF > & | , | |||
| bs | ||||
| ) | const |
| 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() | , | |||
| buoyancy | , | |||
| const SIM_RawField * | , | |||
| temperature | , | |||
| fpreal | , | |||
| up | , | |||
| fpreal | , | |||
| Tamb | , | |||
| fpreal | , | |||
| buoyancy | ||||
| ) | const |
| SIM_RawField::THREADED_METHOD4_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| gaussSeidelIterationFlat2D | , | |||
| fpreal32 * | , | |||
| A | , | |||
| fpreal32 | , | |||
| weight | , | |||
| fpreal32 | , | |||
| sumweight | , | |||
| int | , | |||
| parity | ||||
| ) |
| SIM_RawField::THREADED_METHOD4_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| gaussSeidelIterationFlat | , | |||
| fpreal32 * | , | |||
| A | , | |||
| fpreal32 | , | |||
| weight | , | |||
| fpreal32 | , | |||
| sumweight | , | |||
| int | , | |||
| parity | ||||
| ) |
| SIM_RawField::THREADED_METHOD5 | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| advect2 | , | |||
| const SIM_RawField * | , | |||
| source | , | |||
| sim_PointVelocity | , | |||
| getVelocity | , | |||
| fpreal | , | |||
| time | , | |||
| fpreal | , | |||
| voxelsize | , | |||
| const SIM_RawField * | , | |||
| collision | ||||
| ) | const |
| SIM_RawField::THREADED_METHOD5_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| reduceMaskedOpInternal | , | |||
| fpreal64 * | , | |||
| sum | , | |||
| fpreal64 * | , | |||
| masktotal | , | |||
| REDUCE_NAMES | , | |||
| op | , | |||
| const SIM_RawField * | , | |||
| mask | , | |||
| bool | , | |||
| maskissdf | ||||
| ) | [protected] |
| SIM_RawField::THREADED_METHOD5_CONST | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| solveUpperTriangularSystems | , | |||
| const UT_PtrArray< SIM_RawSparseMatrix * > & | , | |||
| ud | , | |||
| UT_RefArray< UT_VectorF > & | , | |||
| xs | , | |||
| const UT_PtrArray< SIM_RawSparseMatrix * > & | , | |||
| us | , | |||
| const UT_VectorF & | , | |||
| xc | , | |||
| UT_RefArray< UT_VectorF > & | , | |||
| ys | ||||
| ) | const |
| SIM_RawField::THREADED_METHOD7 | ( | SIM_RawField | , | |
| shouldMultiThread() | , | |||
| advect | , | |||
| const SIM_RawField * | , | |||
| source | , | |||
| const SIM_RawField * | , | |||
| velx | , | |||
| const SIM_RawField * | , | |||
| vely | , | |||
| const SIM_RawField * | , | |||
| velz | , | |||
| fpreal | , | |||
| time | , | |||
| const SIM_RawField * | , | |||
| collision | , | |||
| SIM_FieldAdvection | , | |||
| advectmethod | ||||
| ) | const |
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.
Perform heaviside & inverse heaviside in a consistent fashion.
| 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 | |||
| ) |
| void SIM_RawField::waveletRebuildFromVoxelArray | ( | UT_VoxelArrayF * | array, | |
| float | scale | |||
| ) | [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.
| const SIM_RawField const SIM_RawField const SIM_RawField fpreal const SIM_RawField SIM_FieldAdvection SIM_RawField::advectmethod |
Definition at line 454 of file SIM_RawField.h.
Definition at line 232 of file SIM_RawField.h.
Definition at line 242 of file SIM_RawField.h.
Definition at line 611 of file SIM_RawField.h.
Definition at line 469 of file SIM_RawField.h.
Definition at line 680 of file SIM_RawField.h.
Definition at line 479 of file SIM_RawField.h.
| const SIM_RawField const SIM_RawField const SIM_RawField fpreal const SIM_RawField* SIM_RawField::collision |
Definition at line 454 of file SIM_RawField.h.
Definition at line 696 of file SIM_RawField.h.
fpreal64 REDUCE_NAMES const SIM_RawField bool const UT_JobInfo& info SIM_RawField::const [protected] |
Definition at line 785 of file SIM_RawField.h.
REDUCE_NAMES const UT_JobInfo& info SIM_RawField::const [protected] |
Definition at line 777 of file SIM_RawField.h.
Definition at line 658 of file SIM_RawField.h.
Definition at line 648 of file SIM_RawField.h.
| UT_RefArray<UT_VectorF> const UT_PtrArray<SIM_RawSparseMatrix*> const UT_VectorF UT_RefArray<UT_VectorF> const UT_JobInfo& info SIM_RawField::const |
Definition at line 634 of file SIM_RawField.h.
Definition at line 611 of file SIM_RawField.h.
Definition at line 574 of file SIM_RawField.h.
Definition at line 680 of file SIM_RawField.h.
Definition at line 479 of file SIM_RawField.h.
Definition at line 751 of file SIM_RawField.h.
Definition at line 696 of file SIM_RawField.h.
Definition at line 680 of file SIM_RawField.h.
Definition at line 558 of file SIM_RawField.h.
Definition at line 519 of file SIM_RawField.h.
Definition at line 479 of file SIM_RawField.h.
Definition at line 469 of file SIM_RawField.h.
| const SIM_RawField const SIM_RawField const SIM_RawField fpreal const SIM_RawField SIM_FieldAdvection const UT_JobInfo& SIM_RawField::info |
Definition at line 454 of file SIM_RawField.h.
Definition at line 242 of file SIM_RawField.h.
Definition at line 213 of file SIM_RawField.h.
Definition at line 187 of file SIM_RawField.h.
Definition at line 232 of file SIM_RawField.h.
Definition at line 217 of file SIM_RawField.h.
Definition at line 163 of file SIM_RawField.h.
fpreal64 REDUCE_NAMES const SIM_RawField* SIM_RawField::maskfield [protected] |
Definition at line 785 of file SIM_RawField.h.
fpreal64 REDUCE_NAMES const SIM_RawField bool SIM_RawField::maskissdf [protected] |
Definition at line 785 of file SIM_RawField.h.
fpreal64* SIM_RawField::masktotal [protected] |
Definition at line 785 of file SIM_RawField.h.
UT_Vector3 SIM_RawField::myBBoxOrig [protected] |
Definition at line 801 of file SIM_RawField.h.
UT_Vector3 SIM_RawField::myBBoxSize [protected] |
Definition at line 801 of file SIM_RawField.h.
SIM_FieldBoundary SIM_RawField::myBoundary[3][2] [protected] |
Definition at line 806 of file SIM_RawField.h.
fpreal SIM_RawField::myBoundaryValue[3][2] [protected] |
Definition at line 807 of file SIM_RawField.h.
UT_VoxelArrayF* SIM_RawField::myField [protected] |
Definition at line 794 of file SIM_RawField.h.
UT_Vector3 SIM_RawField::myOrig [protected] |
Definition at line 798 of file SIM_RawField.h.
SIM_FieldSample SIM_RawField::mySample [protected] |
Definition at line 793 of file SIM_RawField.h.
UT_Vector3 SIM_RawField::mySize [protected] |
Definition at line 798 of file SIM_RawField.h.
fpreal SIM_RawField::myVoxelDiameter [protected] |
Definition at line 804 of file SIM_RawField.h.
UT_Vector3 SIM_RawField::myVoxelSize [protected] |
Definition at line 803 of file SIM_RawField.h.
fpreal64 REDUCE_NAMES SIM_RawField::op [protected] |
Definition at line 785 of file SIM_RawField.h.
REDUCE_NAMES SIM_RawField::op [protected] |
Definition at line 777 of file SIM_RawField.h.
Definition at line 558 of file SIM_RawField.h.
Definition at line 658 of file SIM_RawField.h.
Definition at line 232 of file SIM_RawField.h.
Definition at line 163 of file SIM_RawField.h.
Definition at line 558 of file SIM_RawField.h.
Definition at line 519 of file SIM_RawField.h.
Definition at line 469 of file SIM_RawField.h.
Definition at line 479 of file SIM_RawField.h.
Definition at line 454 of file SIM_RawField.h.
Definition at line 163 of file SIM_RawField.h.
Definition at line 469 of file SIM_RawField.h.
Definition at line 634 of file SIM_RawField.h.
Definition at line 454 of file SIM_RawField.h.
Definition at line 454 of file SIM_RawField.h.
Definition at line 454 of file SIM_RawField.h.
Definition at line 479 of file SIM_RawField.h.
Definition at line 558 of file SIM_RawField.h.
Definition at line 648 of file SIM_RawField.h.
Definition at line 634 of file SIM_RawField.h.
Definition at line 751 of file SIM_RawField.h.
Definition at line 634 of file SIM_RawField.h.
| UT_RefArray<UT_VectorF> const UT_PtrArray<SIM_RawSparseMatrix*> const UT_VectorF UT_RefArray<UT_VectorF>& SIM_RawField::ys |
Definition at line 634 of file SIM_RawField.h.
Definition at line 611 of file SIM_RawField.h.
1.5.9