SPH
Classes | Public Member Functions | List of all members
XSph Class Reference

XSPH correction that (partially) averages the velocities over neighbouring particles. More...

#include <XSph.h>

Inheritance diagram for XSph:
IEquationTerm Polymorphic

Public Member Functions

virtual void setDerivatives (DerivativeHolder &derivatives, const RunSettings &settings) override
 Sets derivatives required by this term. More...
 
virtual void initialize (IScheduler &UNUSED(scheduler), Storage &storage, const Float UNUSED(t)) override
 
virtual void finalize (IScheduler &UNUSED(scheduler), Storage &storage, const Float UNUSED(t)) override
 
virtual void create (Storage &storage, IMaterial &UNUSED(material)) const override
 
- Public Member Functions inherited from IEquationTerm
virtual void initialize (IScheduler &scheduler, Storage &storage, const Float t)=0
 Initialize all the derivatives and/or quantity values before derivatives are computed. More...
 
virtual void finalize (IScheduler &scheduler, Storage &storage, const Float t)=0
 Computes all the derivatives and/or quantity values based on accumulated derivatives. More...
 
virtual void create (Storage &storage, IMaterial &material) const =0
 Creates all quantities needed by the term using given material. More...
 
- Public Member Functions inherited from Polymorphic
virtual ~Polymorphic ()
 

Detailed Description

XSPH correction that (partially) averages the velocities over neighbouring particles.

This keeps particles ordered in absence of viscosity. See Monaghan 1992 (Annu. Rev. Astron. Astrophys. 1992.30:543-74)

Todo:
This implementation is currently not consistent ContinuitySolver; different velocities should also affect the continuity equations (density derivative). For self-consistent solutions, use XSPH corrected velocities in continuity equation or use direct summation of density.

Definition at line 23 of file XSph.h.

Member Function Documentation

◆ create()

virtual void XSph::create ( Storage storage,
IMaterial UNUSEDmaterial 
) const
inlineoverridevirtual

Definition at line 94 of file XSph.h.

◆ finalize()

virtual void XSph::finalize ( IScheduler UNUSEDscheduler,
Storage storage,
const Float   UNUSED
)
inlineoverridevirtual

Definition at line 86 of file XSph.h.

◆ initialize()

virtual void XSph::initialize ( IScheduler UNUSEDscheduler,
Storage storage,
const Float   UNUSED
)
inlineoverridevirtual
Todo:
this is not very good solution as it depends on ordering of equation term in the array; some may already get corrected velocities. This should be really done by deriving the solver and correcting velocities manually.

Definition at line 74 of file XSph.h.

◆ setDerivatives()

virtual void XSph::setDerivatives ( DerivativeHolder derivatives,
const RunSettings settings 
)
inlineoverridevirtual

Sets derivatives required by this term.

The derivatives are then automatically evaluated by the solver, the equation term can access the result in finalize function. This function is called once for each thread at the beginning of the run.

Implements IEquationTerm.

Definition at line 70 of file XSph.h.


The documentation for this class was generated from the following file: