Acoustic FDTD Solver
MaterialDecorator.hpp
Go to the documentation of this file.
1 #ifndef MATERIALDECORATOR_HPP
2 #define MATERIALDECORATOR_HPP
3 
4 #include "Material.hpp"
5 #include "Vacuum.hpp"
6 
7 
15 protected:
17 public:
20  MaterialDecorator(const MaterialDecorator &the_decorator);
21  MaterialDecorator & operator=(const MaterialDecorator &the_decorator);
22  bool operator==(const Material &m) const;
23  virtual MaterialDecorator * clone() const;
24  virtual void print() const;
25  virtual ~MaterialDecorator();
26 
27  virtual double getBulkModulus() const;
28  virtual double getDensity() const;
29  virtual double getAcousticConductivity() const;
30  virtual double getAcousticPhaseVelocity(const double frequency) const;
31  virtual double getAcousticWavelength(const double frequency) const;
32  virtual std::complex<double> getAcousticWaveNumber(const double frequency) const;
33  virtual std::complex<double> getAcousticImpedance(const double frequency) const;
34 
35  virtual double getYoungsModulus() const;
36  virtual double getLameFirst() const;
37  virtual double getShearModulus() const;
38 
39  virtual double getThermalConductivity() const;
40  virtual double getSpecificHeat() const;
41  virtual double getThermalExpansion() const;
42 
43  virtual double getElectricConductivity() const;
44  virtual double getRelativePermittivity() const;
45  virtual double getMagneticConductivity() const;
46  virtual double getRelativePermeability() const;
47  virtual double getElectromagneticPhaseVelocity(const double frequency) const;
48  virtual double getElectromagneticWavelength(const double frequency) const;
49  virtual std::complex<double> getElectromagneticWaveNumber(const double frequency) const;
50  virtual std::complex<double> getElectromagneticImpedance(const double frequency) const;
51 };
52 
53 #endif