s 28.42
Axiom Solver
- Axiom > Main > Solver
- Mode
- Traditional
- Traditional follows the exact steps of used by most fluid solvers
 
 - Reflection
- Reflection is good at conserving energy in the sim, swirling motion will last longer.
 
 - Reflection Single Step
- Less accurate but faster version of reflection (Default)
 - Really no need to change from this
 
 
 - Traditional
 - Division Size
- Voxel div size, lower value means higher resolution
 
 - Voxels
- Starting number of voxels. By default, if the solver reaches this limit it will increase the limit by 20% and keep going. If it can not allocate more memory, it will try to find a new device to run on.
Under Setting > solver > Voxel Limit Behaviour you can set how it behaves if it reaches the limit. 
 - Starting number of voxels. By default, if the solver reaches this limit it will increase the limit by 20% and keep going. If it can not allocate more memory, it will try to find a new device to run on.
 
 - Mode
 
Axiom will allocate the GPU memory it needs to be able to sim the voxels specified in the Main > Solvber > Voxels parameter. On the Main > Info tab you can see this info. It is faster and less artifact prone to allocate enough memory from the beginning.
- Tip
- You can bring up the performance monitor with Window key + G
 
 
Axiom source
Basic
- Basic setup
- Add axiom solver
 - Add axiom source shape
 - Connect the source shape to the second input of the solver
 
 
Lets add a pressure influence field
Sink
- 
Sink
- Create an axiom source node
 - Set the Main > Type : Sink
 - Transform the node into position
 - The sink will remove all density it comes into contact with
 
 - 
Camera frustum
- Create an axiom source node
 - Set the Main > Type : Camera Frustum
 - Select the camera you want to use
 - All density that falls outide of the camera frustum (witjh some padding) will be removed
 
 
Influence
- Pressure influence
- Add axiom source shape
- Change the Main > type to Influence
 - Set the Sourcing > Pressure to 5
- We can also set it to 1 here and scale the pressure on the solver instead.
 
 - Move the influnece source up Transform > Translayt Y : 4
 
 - Merge fields
- Merge the influence source with the density source (the one we created in the basic setup above)
 
 - Input to solver
- Connect the merged sources to the second input of the axiom solver.
 - We can see that when the smoke hits the influence field it balloons out.
 - Note!
- On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.
 
 
 
 - Add axiom source shape
 
We can also add a temperature influnce to heat up or cool down the sim. If a negative temperature is used the smoke will loose bouancy and “fall down”
- Velocity Influence
- Add axiom source shape
- Set Type
- Main > Type to Influence
 - Main > Shape to Cylinder
 
 - Transform the source shape
- Transform > Translate Y : 1
 - Transform > Uniform Scale : 2
 
 - Set the influence to a Spin force
- Force > Type : Spin
 - Force > Magnitude : 3
 
 
 - Set Type
 - Merge fields
- Merge the influence source with the density source.
 
 - Input to solver
- Connect the merged sources to the second input of the axiom solver.
 
 
 - Add axiom source shape
 
We can animate the properties of the sources to effact the sim in various ways.
Custom source
- Custom emitter (density & temperature)
- Create a polygon sphere
 - VDB from Polygons
- Fog VDB : density
 
 - Add temperature
- Add a name sop
- group : @name=density
 - name : temperature
 
 
 - Add a name sop
 - Merge with density vdb
 - Feed into the first input of the axiom solver
 
 
Custom influence
Pressure
- Custom influence pressure
- Create a polygon sphere
- Transform the sphere
- Set the radius to 1 on all axis
- This is just done in this example to mimic the size of the default axim source. You can obviously set it to whatever you want.
 
 - Move the sphere up Center Y : 2
 
 - Set the radius to 1 on all axis
 
 - Transform the sphere
 - Add influence field
- VDB from Polygons
- Fog VDB : influence
 - This field is used as a mask / activator of where to add influence
 
 
 - VDB from Polygons
 - Add pressure field
- To add a pressure influence we also need to add a specific influencePressure field.
 - Add a name SOP
- Group : @name=influence
 - Name : influencePressure
 
 
 - Invert the pressure
- Unlike the pressure influence we added with the axiom source we need to invert the custom influencePressure field.
 - Add a Volume Wrangle
- f@influencePressure *= -1;
 
 
 - Merge fields
- Merge the influence source with the density source.
 
 - Input to solver
- Connect the merged sources to the first input of the axiom solver.
 - Note!
- On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.
 
 
 
 - Create a polygon sphere
 
Velocity
- Custom influence velocity
- Create a mesh
- Velocity attributes
- If we have an animated geo we can use the Point Velocity SOP to generate v attrib.
 - Or we can use a wrangle to add a velocity (v) attribute to the points of the mesh.
 - We will use these point atribs to generate the velocity field.
 
 
 - Velocity attributes
 - Add influence field
- VDB from Polygons
- Fog VDB : influence
 - This field is used as a mask / activator of where to add influence
 
 
 - VDB from Polygons
 - Add velocity field
- Click the + in the multiparm called Surface Attributes in bottom of the VDB from Polygons node.
 - Click the dropdown in the right side of the Attribute parameter and select point.v
 - In the VDB Name parameter enter influenceVel
 - You can set the Vector Type to Displacement/Velocity/Acceleration (altough I do not think that is needed)
 
 - Merge fields
- Merge the influence source with the density source.
 
 - Input to solver
- Connect the merged sources to the first input of the axiom solver.
 - Note!
- On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.
 
 
 
 - Create a mesh
 
Collision
- Custom collision
- To add custom collision we can use the workflow above (to create influence velocity)
 - But instaead we use collision as the fog VDB name and collisionVel as the surface attribute (point.v)