Here you can find more advanced settings that you will hopefully rarely need to touch.

Voxel limit behavior allows the solver to increase the amount of allocated memory mid-simulation if the solver needs it. By default it will add 20% more memory if the simulation uses 95% of the current memory allocation. You can also tell the solver to use the voxel limit you set as a hard limit.
Debug verbosity will let the solver print out debug information to the console. When you are encountering a problem this can be useful to see why the solver might have failed or errored.

The leaf size controls the size of individual leaves which are the base blocks of voxels the grid is made up of. Generally, you should leave it on 16^3 but if you have a very large and detailed simulation you should consider switching to 32^3.
Remove inactive leaves will remove any leaves whose voxels values fall below the threshold value. We recommend always leaving this on.
Sort leaves will reorganize the data structure each time step to run more efficiently. You don't really need to worry about this, simply leave it on at all times.
Value threshold is the value below which voxels are considered inactive. This is used for the activation and deactivations of leaves to enable a dynamically changing domain.
Field precision lets you choose a higher or lower field precision. 16-bit will be less precise, but will use 36% less total memory compared to 32-bit.

Memory allocation has options for what memory the device you chose is allowed to access. When using Metal or Cuda a device can used shared memory which is the system ram in addition to your GPU’s memory. This option is not available with OpenCL.
The memory buffer is an amount of memory expressed in MBs that the solver will keep free on your device. If you have an 8GB GPU and set the memory buffer to 1000MB then the total amount of memory the solver can use on your device is 7GB.