user: Describe SPHFluidSettings(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # SPHFluidSettings(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.SPHFluidSettings(*bpy_struct*)
:   Settings for particle fluids physics

    buoyancy
    :   Artificial buoyancy force in negative gravity direction based on pressure differences inside the fluid

        Type:
        :   float in [0, 10], default 0.0

    fluid_radius
    :   Fluid interaction radius

        Type:
        :   float in [0, 20], default 0.0

    linear_viscosity
    :   Linear viscosity

        Type:
        :   float in [0, 100], default 0.0

    plasticity
    :   How much the spring rest length can change after the elastic limit is crossed

        Type:
        :   float in [0, 100], default 0.0

    repulsion
    :   How strongly the fluid tries to keep from clustering (factor of stiffness)

        Type:
        :   float in [0, 100], default 0.0

    rest_density
    :   Fluid rest density

        Type:
        :   float in [0, 10000], default 0.0

    rest_length
    :   Spring rest length (factor of particle radius)

        Type:
        :   float in [0, 2], default 0.0

    solver
    :   The code used to calculate internal forces on particles

        - `DDR`
          Double-Density – An artistic solver with strong surface tension effects (original).
        - `CLASSICAL`
          Classical – A more physically-accurate solver.

        Type:
        :   enum in [`'DDR'`, `'CLASSICAL'`], default `'DDR'`

    spring_force
    :   Spring force

        Type:
        :   float in [0, 100], default 0.0

    spring_frames
    :   Create springs for this number of frames since particles birth (0 is always)

        Type:
        :   int in [0, 100], default 0

    stiff_viscosity
    :   Creates viscosity for expanding fluid

        Type:
        :   float in [0, 100], default 0.0

    stiffness
    :   How incompressible the fluid is (speed of sound)

        Type:
        :   float in [0, 1000], default 0.0

    use_factor_density
    :   Density is calculated as a factor of default density (depends on particle size)

        Type:
        :   boolean, default False

    use_factor_radius
    :   Interaction radius is a factor of 4 \* particle size

        Type:
        :   boolean, default False

    use_factor_repulsion
    :   Repulsion is a factor of stiffness

        Type:
        :   boolean, default False

    use_factor_rest_length
    :   Spring rest length is a factor of 2 \* particle size

        Type:
        :   boolean, default False

    use_factor_stiff_viscosity
    :   Stiff viscosity is a factor of normal viscosity

        Type:
        :   boolean, default False

    use_initial_rest_length
    :   Use the initial length as spring rest length instead of 2 \* particle size

        Type:
        :   boolean, default False

    use_viscoelastic_springs
    :   Use viscoelastic springs instead of Hooke’s springs

        Type:
        :   boolean, default False

    yield_ratio
    :   How much the spring has to be stretched/compressed in order to change its rest length

        Type:
        :   float in [0, 1], default 0.0

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type