AnalyticData.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
10 #include "PointwiseFunctions/AnalyticData/AnalyticData.hpp"
11 #include "PointwiseFunctions/Elasticity/ConstitutiveRelations/ConstitutiveRelation.hpp"
12 #include "Utilities/FakeVirtual.hpp"
13 #include "Utilities/Registration.hpp"
14 #include "Utilities/TMPL.hpp"
15 #include "Utilities/TaggedTuple.hpp"
16 
17 namespace Elasticity {
18 /// Analytic data for the Elasticity system
19 namespace AnalyticData {
20 
21 /// Base class for the background of the Elasticity system, i.e. its
22 /// variable-independent quantities. Derived classes must provide a constitutive
23 /// relation.
24 template <size_t Dim, typename Registrars>
25 class AnalyticData : public ::AnalyticData<Dim, Registrars> {
26  private:
28 
29  protected:
30  /// \cond
31  AnalyticData() = default;
32  AnalyticData(const AnalyticData&) = default;
33  AnalyticData(AnalyticData&&) = default;
34  AnalyticData& operator=(const AnalyticData&) = default;
35  AnalyticData& operator=(AnalyticData&&) = default;
36  /// \endcond
37 
38  public:
39  ~AnalyticData() override = default;
40 
41  /// \cond
42  explicit AnalyticData(CkMigrateMessage* m) noexcept : Base(m) {}
44  /// \endcond
45 
46  /// A constitutive relation that represents the properties of the elastic
47  /// material
49  constitutive_relation() const noexcept = 0;
50 };
51 } // namespace AnalyticData
52 } // namespace Elasticity
CharmPupable.hpp
Elasticity
Items related to solving elasticity problems.
Definition: LaserBeam.hpp:25
cstddef
Elasticity::AnalyticData::AnalyticData
Base class for the background of the Elasticity system, i.e. its variable-independent quantities....
Definition: AnalyticData.hpp:25
WRAPPED_PUPable_abstract
#define WRAPPED_PUPable_abstract(className)
Wraps the Charm++ macro, see the Charm++ documentation.
Definition: CharmPupable.hpp:41
Elasticity::AnalyticData::AnalyticData::constitutive_relation
virtual const ConstitutiveRelations::ConstitutiveRelation< Dim > & constitutive_relation() const noexcept=0
A constitutive relation that represents the properties of the elastic material.
Tensor.hpp
Elasticity::ConstitutiveRelations::ConstitutiveRelation
Base class for constitutive (stress-strain) relations that characterize the elastic properties of a m...
Definition: ConstitutiveRelation.hpp:56
TMPL.hpp