ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkFEMMaterialLinearElasticity.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef itkFEMMaterialLinearElasticity_h
20 #define itkFEMMaterialLinearElasticity_h
21 
22 #include "itkFEMMaterialBase.h"
23 #include "ITKFEMExport.h"
24 
25 namespace itk
26 {
27 namespace fem
28 {
38 class ITKFEM_EXPORT MaterialLinearElasticity : public Material
39 {
40 public:
41 
47 
49  itkSimpleNewMacro(Self);
50 
52  itkTypeMacro(MaterialLinearElasticity, Material);
53 
56  virtual::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE;
57 
62 
66  void SetCrossSectionalArea(double area);
67 
71  double GetCrossSectionalArea() const;
72 
76  void SetYoungsModulus(double modulus);
77 
81  double GetYoungsModulus() const;
82 
86  void SetThickness(double t);
87 
91  double GetThickness() const;
92 
96  void SetMomentOfInertia(double iner);
97 
101  double GetMomentOfInertia() const;
102 
106  void SetPoissonsRatio(double poi);
107 
111  double GetPoissonsRatio() const;
112 
116  void SetDensityHeatProduct(double dhp);
117 
121  double GetDensityHeatProduct() const;
122 
123 protected:
124 
125  virtual void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
126 
127  /* Data members of MaterialLinearElasticity class */
128 
132  double m_YoungModulus;
133 
137  double m_CrossSectionalArea; //
138 
142  double m_MomentOfInertia;
143 
147  double m_PoissonRatio;
148 
152  double m_Thickness;
153 
154  /*
155  * ... we can add properties here as required without the influence on the already defined elements
156  */
157 
161  double m_DensityHeatCapacity;
162 };
163 
164 }
165 } // end namespace itk::fem
166 
167 #endif // #ifndef itkFEMMaterialLinearElasticity_h
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
virtual ::itk::LightObject::Pointer CreateAnother() const
SmartPointer< Self > Pointer
Linear elasticity material class.
Base class for storing all the implicit material and other properties required to fully define the el...
Control indentation during Print() invocation.
Definition: itkIndent.h:49