SPH
Damage.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include "common/ForwardDecl.h"
12 #include "objects/wrappers/Flags.h"
13 
15 
17 class IScheduler;
18 
20 class IFractureModel : public Polymorphic {
21 public:
23  virtual void setFlaws(Storage& storage,
24  IMaterial& material,
25  const MaterialInitialContext& context) const = 0;
26 
28  virtual void integrate(IScheduler& scheduler, Storage& storage, const MaterialView sequence) = 0;
29 };
30 
33 public:
34  virtual void setFlaws(Storage& storage,
35  IMaterial& material,
36  const MaterialInitialContext& context) const override;
37 
38  virtual void integrate(IScheduler& scheduler, Storage& storage, const MaterialView material) override;
39 };
40 
42 public:
43  virtual void setFlaws(Storage& storage,
44  IMaterial& material,
45  const MaterialInitialContext& context) const override;
46 
47  virtual void integrate(IScheduler& scheduler, Storage& storage, const MaterialView material) override;
48 };
49 
50 class NullFracture : public IFractureModel {
51 public:
52  virtual void setFlaws(Storage& storage,
53  IMaterial& material,
54  const MaterialInitialContext& context) const override;
55 
56  virtual void integrate(IScheduler& scheduler, Storage& storage, const MaterialView material) override;
57 };
58 
Simple non-owning view of a container.
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
Wrapper over enum allowing setting (and querying) individual bits of the stored value.
#define NAMESPACE_SPH_END
Definition: Object.h:12
Symmetric traceless 2nd order tensor.
Basic vector algebra. Computations are accelerated using SIMD.
Interface representing a fragmentation model.
Definition: Damage.h:20
virtual void integrate(IScheduler &scheduler, Storage &storage, const MaterialView sequence)=0
Compute damage derivatives.
virtual void setFlaws(Storage &storage, IMaterial &material, const MaterialInitialContext &context) const =0
Sets up all the necessary quantities in the storage given material settings.
Material settings and functions specific for one material.
Definition: IMaterial.h:110
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Definition: Scheduler.h:27
Non-owning wrapper of a material and particles with this material.
Definition: IMaterial.h:30
virtual void setFlaws(Storage &storage, IMaterial &material, const MaterialInitialContext &context) const override
Sets up all the necessary quantities in the storage given material settings.
Definition: Damage.cpp:231
virtual void integrate(IScheduler &scheduler, Storage &storage, const MaterialView material) override
Compute damage derivatives.
Definition: Damage.cpp:235
Scalar damage describing fragmentation of the body according to Grady-Kipp model (Grady and Kipp,...
Definition: Damage.h:32
virtual void integrate(IScheduler &scheduler, Storage &storage, const MaterialView material) override
Compute damage derivatives.
Definition: Damage.cpp:128
virtual void setFlaws(Storage &storage, IMaterial &material, const MaterialInitialContext &context) const override
Sets up all the necessary quantities in the storage given material settings.
Definition: Damage.cpp:17
Container storing all quantities used within the simulations.
Definition: Storage.h:230
virtual void setFlaws(Storage &storage, IMaterial &material, const MaterialInitialContext &context) const override
Sets up all the necessary quantities in the storage given material settings.
Definition: Damage.cpp:176
virtual void integrate(IScheduler &scheduler, Storage &storage, const MaterialView material) override
Compute damage derivatives.
Definition: Damage.cpp:225
Shared data used when creating all bodies in the simulation.
Definition: IMaterial.h:89
Base class for all polymorphic objects.
Definition: Object.h:88