1 #ifndef _GAS_AdaptiveViscosity_
2 #define _GAS_AdaptiveViscosity_
49 const int level)
const;
51 void setActiveNodes(
const int level);
69 void distributeNodeValuesDown(
const int level);
88 : m_face_index(face_index)
89 , m_coefficient(coefficient)
96 static constexpr
exint UNLABELED_FACE = -1;
97 static constexpr
exint OUTSIDE_FACE = -2;
98 static constexpr
exint COLLISION_FACE = -3;
99 static constexpr
exint FLUID_FACE = -4;
100 static constexpr
exint BOUNDARY_FACE = -5;
102 static constexpr
exint OUTSIDE_STRESS = -1;
103 static constexpr
exint ACTIVE_STRESS = -2;
104 static constexpr
exint INACTIVE_STRESS = -3;
155 "Gas Adaptive Viscosity", getDopDescription());
165 const fpreal extrapolation,
166 const bool do_apply_collision_weights)
const;
180 const fpreal extrapolation)
const;
217 const int octree_levels,
218 const fpreal extrapolation,
219 const int inside_fine_cell_width,
220 const int outside_fine_cell_width)
const;
227 findOccupiedRegularVelocityTiles(
UT_Array<bool> &is_tile_occupied_list,
230 const int axis)
const;
242 const fpreal extrapolation)
const;
253 const fpreal extrapolation)
const;
260 findOccupiedOctreeVelocityTiles(
UT_Array<bool> &is_tile_occupied_list,
263 const int axis)
const;
275 const int axis,
const int level,
276 const fpreal extrapolation)
const;
288 const fpreal extrapolation)
const;
295 findOccupiedEdgeStressTiles(
UT_Array<bool> &is_tile_occupied_list,
298 const int axis)
const;
305 const int axis,
const int level)
const;
321 const int level)
const;
340 const int axis,
const int level)
const;
347 const int axis,
const int level)
const;
349 struct EdgeStressStencilParms
357 const fpreal viscosity_scale,
358 const fpreal min_viscosity,
360 : m_octree_velocity_indices(octree_velocity_indices),
361 m_edge_stress_indices(edge_stress_indices),
362 m_octree_labels(octree_labels),
363 m_collision_velocity(collision_velocity),
364 m_edge_volume_weights(edge_volume_weights),
365 m_viscosity(viscosity),
366 m_viscosity_scale(viscosity_scale),
367 m_min_viscosity(min_viscosity),
378 const fpreal m_viscosity_scale;
379 const fpreal m_min_viscosity;
387 const EdgeStressStencilParms &parms,
388 const int axis,
const int level)
const;
401 const int axis,
const int level)
const;
403 struct CenterStressStencilParms
409 : m_octree_velocity_indices(octree_velocity_indices),
410 m_center_stress_indices(center_stress_indices),
411 m_octree_labels(octree_labels),
412 m_collision_velocity(collision_velocity)
425 const CenterStressStencilParms &parms,
426 const int axis,
const int level,
427 const exint center_stress_count)
const;
434 const fpreal viscosity_scale,
435 const fpreal min_viscosity,
437 const int level)
const;
444 applyVelocitiesToRegularGrid(
SIM_RawField ®ular_velocity,
451 const int axis)
const;
#define DECLARE_STANDARD_GETCASTTOTYPE()
#define SIM_NAME_TOLERANCE
#define GET_DATA_FUNC_V3(DataName, FuncName)
GT_API const UT_StringHolder time
#define GAS_NAME_USETIMESTEP
GAS_OctreeFaceVectorFieldInterpolator(const UT_FaceGradedOctreeLabels &octree_labels, const UT_Array< UT_Array< SIM_RawField >> &staggered_velocity, const UT_Array< UT_Array< SIM_RawIndexField >> &octree_velocity_indices)
StressStencilFace(exint face_index, fpreal coefficient)
virtual bool solveGasSubclass(SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)=0
fpreal getValue(const UT_Vector3 &sample_point, const int axis) const
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
#define GET_DATA_FUNC_I(DataName, FuncName)
#define GET_DATA_FUNC_B(DataName, FuncName)
#define GET_DATA_FUNC_F(DataName, FuncName)
#define GAS_NAME_TIMESCALE
This class holds a three dimensional vector field.
virtual void initializeSubclass()