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

Artificial stress for simulations including stress tensor. More...

#include <Stress.h>

Inheritance diagram for StressAV:
IEquationTerm Polymorphic

Classes

class  Derivative
 

Public Member Functions

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

Detailed Description

Artificial stress for simulations including stress tensor.

This artificial force attemps to resolve problems with tensile instability in SPH. It isn't a replacement of 'standard' artificial viscosity, both terms serve different purposes and they complement each other. The implementation more or less follows paper 'SPH without a tensile instability' by Monaghan [Monaghan_1999].

Note
This object cannot be used within Balsara switch

Definition at line 21 of file Stress.h.

Constructor & Destructor Documentation

◆ StressAV()

StressAV::StressAV ( const RunSettings settings)

Definition at line 60 of file Stress.cpp.

Member Function Documentation

◆ create()

void StressAV::create ( Storage storage,
IMaterial material 
) const
overridevirtual

Creates all quantities needed by the term using given material.

Called once for every body in the simulation.

Delta p / h is assumed to be constant, so that W(Delta p) is constant

Implements IEquationTerm.

Definition at line 120 of file Stress.cpp.

◆ finalize()

void StressAV::finalize ( IScheduler scheduler,
Storage storage,
const Float  t 
)
overridevirtual

Computes all the derivatives and/or quantity values based on accumulated derivatives.

Called every time step after derivatives are evaluated and saved to storage.

Implements IEquationTerm.

Definition at line 118 of file Stress.cpp.

◆ initialize()

void StressAV::initialize ( IScheduler scheduler,
Storage storage,
const Float  t 
)
overridevirtual

Initialize all the derivatives and/or quantity values before derivatives are computed.

Called at the beginning of every time step. Note that derivatives need not be zeroed out manually, this is already done by timestepping (for derivatives of quantities) and solver (for accumulated values).

Implements IEquationTerm.

Definition at line 96 of file Stress.cpp.

◆ setDerivatives()

void StressAV::setDerivatives ( DerivativeHolder derivatives,
const RunSettings settings 
)
overridevirtual

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.

Todo:
partially duplicates stuff from EquationTerm.cpp

Implements IEquationTerm.

Definition at line 64 of file Stress.cpp.


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