Go to the documentation of this file.00001
00002
00003 #ifndef elasticityTensor_hh
00004 #define elasticityTensor_hh
00005
00006 #include "basics/vectorsMatrices.hh"
00007
00008 using concepts::Real;
00009
00015 template <int dim>
00016 class ElasticityTensor {
00017 public:
00019 virtual Real entry(uint i, uint j, uint r, uint s) const = 0;
00023 virtual concepts::Mapping<Real, dim> operator() (uint i, uint j) const;
00025 virtual concepts::Mapping<Real, dim> operator()
00026 (concepts::Mapping<Real, dim>& strain) const;
00027 private:
00028 concepts::Mapping<Real, dim> rp2map_(Real* temp) const;
00029 };
00030
00034 template <int dim>
00035 class ElasticityTensorIsotropic : public ElasticityTensor<dim> {
00036 public:
00041 ElasticityTensorIsotropic(Real mu, Real lambda);
00043 virtual Real entry(uint i, uint j, uint r, uint s) const;
00044 private:
00045 Real mu_;
00046 Real lambda_;
00047 };
00048
00049 #endif // elasticityTensor_hh