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

Standard artificial viscosity Monaghan & Gingold [9]. More...

#include <Standard.h>

Inheritance diagram for StandardAV:
IEquationTerm Polymorphic

Classes

class  Derivative
 

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 &UNUSED(storage), const Float UNUSED(t)) override
 
virtual void finalize (IScheduler &UNUSED(scheduler), Storage &UNUSED(storage), const Float UNUSED(t)) override
 
virtual void create (Storage &UNUSED(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

Standard artificial viscosity Monaghan & Gingold [9].

The artificial viscosity term uses a velocity divergence in linear and quadratic term as a measure of local (scalar) dissipation. Acceleration due to the term is:

\[ \frac{{\rm d} \vec v_i}{{\rm d} t} = \sum_j \frac{m_j}{\bar\rho} \left(-\alpha_{\rm AV} \bar{c_{\rm s}} \mu + \beta_{\rm AV} \mu^2 \right) \nabla W_{ij}\,, \]

where \(\mu\) is defined as:

\[ \mu = \frac{\bar{h} (\vec v_i-\vec v_j)\cdot(\vec r_i-\vec r_j)}{ \epsilon \bar{h}^2 \| \vec r_i - \vec r_j \| }\,. \]

A bar over values denodes symmetrization over particle pair, for example \(\bar{h} = 0.5(h_i + h_j)\).

The viscosity only applies in convergent flow ( \((\vec v_i-\vec v_j)\cdot(\vec r_i-\vec r_j) < 0\)), it is zero in divergent flow. Parameters \(\alpha_{\rm AV}\) and \(\beta_{\rm AV}\) are constant (in time) and equal for all particles.

Definition at line 34 of file Standard.h.

Member Function Documentation

◆ create()

virtual void StandardAV::create ( Storage UNUSEDstorage,
IMaterial UNUSEDmaterial 
) const
inlineoverridevirtual

Definition at line 98 of file Standard.h.

◆ finalize()

virtual void StandardAV::finalize ( IScheduler UNUSEDscheduler,
Storage UNUSEDstorage,
const Float   UNUSED
)
inlineoverridevirtual

Definition at line 94 of file Standard.h.

◆ initialize()

virtual void StandardAV::initialize ( IScheduler UNUSEDscheduler,
Storage UNUSEDstorage,
const Float   UNUSED
)
inlineoverridevirtual

Definition at line 90 of file Standard.h.

◆ setDerivatives()

virtual void StandardAV::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 86 of file Standard.h.


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