1 #ifndef _GAS_AdaptiveViscosity_
2 #define _GAS_AdaptiveViscosity_
43 const int level)
const;
45 void setActiveNodes(
const int level);
63 void distributeNodeValuesDown(
const int level);
82 : m_face_index(face_index)
83 , m_coefficient(coefficient)
90 static constexpr
exint UNLABELED_FACE = -1;
91 static constexpr
exint OUTSIDE_FACE = -2;
92 static constexpr
exint COLLISION_FACE = -3;
93 static constexpr
exint FLUID_FACE = -4;
94 static constexpr
exint BOUNDARY_FACE = -5;
96 static constexpr
exint OUTSIDE_STRESS = -1;
97 static constexpr
exint ACTIVE_STRESS = -2;
98 static constexpr
exint INACTIVE_STRESS = -3;
149 "Gas Adaptive Viscosity", getDopDescription());
159 const fpreal extrapolation,
160 const bool do_apply_collision_weights)
const;
174 const fpreal extrapolation)
const;
211 const int octree_levels,
212 const fpreal extrapolation,
213 const int inside_fine_cell_width,
214 const int outside_fine_cell_width)
const;
221 findOccupiedRegularVelocityTiles(
UT_Array<bool> &is_tile_occupied_list,
224 const int axis)
const;
236 const fpreal extrapolation)
const;
247 const fpreal extrapolation)
const;
254 findOccupiedOctreeVelocityTiles(
UT_Array<bool> &is_tile_occupied_list,
257 const int axis)
const;
269 const int axis,
const int level,
270 const fpreal extrapolation)
const;
282 const fpreal extrapolation)
const;
289 findOccupiedEdgeStressTiles(
UT_Array<bool> &is_tile_occupied_list,
292 const int axis)
const;
299 const int axis,
const int level)
const;
315 const int level)
const;
334 const int axis,
const int level)
const;
341 const int axis,
const int level)
const;
343 struct EdgeStressStencilParms
351 const fpreal viscosity_scale,
352 const fpreal min_viscosity,
354 : m_octree_velocity_indices(octree_velocity_indices),
355 m_edge_stress_indices(edge_stress_indices),
356 m_octree_labels(octree_labels),
357 m_collision_velocity(collision_velocity),
358 m_edge_volume_weights(edge_volume_weights),
359 m_viscosity(viscosity),
360 m_viscosity_scale(viscosity_scale),
361 m_min_viscosity(min_viscosity),
372 const fpreal m_viscosity_scale;
373 const fpreal m_min_viscosity;
381 const EdgeStressStencilParms &
parms,
382 const int axis,
const int level)
const;
395 const int axis,
const int level)
const;
397 struct CenterStressStencilParms
403 : m_octree_velocity_indices(octree_velocity_indices),
404 m_center_stress_indices(center_stress_indices),
405 m_octree_labels(octree_labels),
406 m_collision_velocity(collision_velocity)
419 const CenterStressStencilParms &
parms,
420 const int axis,
const int level,
421 const exint center_stress_count)
const;
428 const fpreal viscosity_scale,
429 const fpreal min_viscosity,
431 const int level)
const;
438 applyVelocitiesToRegularGrid(
SIM_RawField ®ular_velocity,
445 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)
GA_API const UT_StringHolder parms
#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()