ITK  4.9.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
Light weight base class for most itk classes.
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