Acoustic FDTD Solver
AcousticProperty.hpp
Go to the documentation of this file.
1 #ifndef ACOUSTICPROPERTY_HPP
2 #define ACOUSTICPROPERTY_HPP
3 
4 #include "MaterialDecorator.hpp"
5 #include "Vacuum.hpp"
6 
14 protected:
15  double K;
16  double rho;
17  double xi;
18 public:
23  AcousticProperty(const std::string &name);
24  AcousticProperty(const double bulk_modulus,
25  const double density,
26  const double conductive_loss);
28  const double phase_velocity,
29  const double density,
30  const double attn=0);
31  AcousticProperty(const AcousticProperty &the_property);
32  AcousticProperty & operator=(const AcousticProperty &the_property);
33  AcousticProperty * clone() const;
34  void print() const;
36 
37  virtual double getBulkModulus() const;
38  virtual double getDensity() const;
39  virtual double getAcousticConductivity() const;
40  virtual double getAcousticPhaseVelocity(const double freq) const;
41  virtual double getAcousticWavelength(const double freq) const;
42  virtual double getAbsorptionDepth(const double freq) const;
43 
44 
45  virtual std::complex<double> getAcousticWaveNumber(const double freq) const;
46  virtual std::complex<double> getAcousticImpedance(const double freq) const;
52  virtual double getEquivalentBulkModulus(const double freq) const;
53 
59  virtual double getEquivalentConductivity(const double freq) const;
60 
72  static double getConductivityFromAttenuation(const double freq,
73  const double attn,
74  const double bulk_modulus,
75  const double density);
76 };
77 
78 #endif