| 
Public Member Functions | 
|  | HNAcousticProperty () | 
|  | HNAcousticProperty (const std::string &name) | 
|  | HNAcousticProperty (const double bulk_modls, const double density, const double relax_time, const double retrd_time, const double frac_exp) | 
|  | HNAcousticProperty (Material *m, const double bulk_modls, const double density, const double relax_time, const double retrd_time, const double frac_exp) | 
|  | HNAcousticProperty (const HNAcousticProperty &the_property) | 
| HNAcousticProperty & | operator= (const HNAcousticProperty &the_property) | 
| HNAcousticProperty * | clone () const | 
| void | print () const | 
|  | Print the parameters associated with the material. 
 | 
|  | ~HNAcousticProperty () | 
| virtual std::complex< double > | getAcousticWaveNumber (const double freq) const | 
|  | Use the dipersion model to calculate the acoustic wave number. 
 | 
| virtual std::complex< double > | getAcousticImpedance (const double freq) const | 
|  | Use the dispersion model to calculate the medium impedance. 
 | 
| virtual double | getEquivalentBulkModulus (const double freq) const | 
| virtual double | getEquivalentConductivity (const double freq) const | 
|  | AcousticProperty () | 
|  | Acoustic properties of water. 
 | 
|  | AcousticProperty (const std::string &name) | 
|  | AcousticProperty (const double bulk_modulus, const double density, const double conductive_loss) | 
|  | AcousticProperty (Material *m, const double phase_velocity, const double density, const double attn=0) | 
|  | AcousticProperty (const AcousticProperty &the_property) | 
| AcousticProperty & | operator= (const AcousticProperty &the_property) | 
|  | ~AcousticProperty () | 
| virtual double | getBulkModulus () const | 
|  | Acoustic properties. 
 | 
| virtual double | getDensity () const | 
|  | Acoustic properties. 
 | 
| virtual double | getAcousticConductivity () const | 
| virtual double | getAcousticPhaseVelocity (const double freq) const | 
|  | Acoustic properties. 
 | 
| virtual double | getAcousticWavelength (const double freq) const | 
|  | Acoustic properties. 
 | 
| virtual double | getAbsorptionDepth (const double freq) const | 
|  | MaterialDecorator () | 
|  | MaterialDecorator (Material *m) | 
|  | MaterialDecorator (const MaterialDecorator &the_decorator) | 
| MaterialDecorator & | operator= (const MaterialDecorator &the_decorator) | 
| bool | operator== (const Material &m) const | 
|  | The objects need to be equality-comparable to be used with the Flyweight pattern. 
 | 
| virtual | ~MaterialDecorator () | 
| virtual double | getYoungsModulus () const | 
|  | Elastic properties. 
 | 
| virtual double | getLameFirst () const | 
|  | Elastic properties, represented by  . 
 | 
| virtual double | getShearModulus () const | 
|  | Elastic properties, represented by  or  . 
 | 
| virtual double | getThermalConductivity () const | 
|  | Thermal properties. 
 | 
| virtual double | getSpecificHeat () const | 
|  | Thermal properties. 
 | 
| virtual double | getThermalExpansion () const | 
|  | Thermal properties. 
 | 
| virtual double | getElectricConductivity () const | 
|  | Electromagnetic properties. 
 | 
| virtual double | getRelativePermittivity () const | 
|  | Electromagnetic properties. 
 | 
| virtual double | getMagneticConductivity () const | 
|  | Electromagnetic properties. 
 | 
| virtual double | getRelativePermeability () const | 
|  | Electromagnetic properties. 
 | 
| virtual double | getElectromagneticPhaseVelocity (const double frequency) const | 
|  | Electromagnetic properties. 
 | 
| virtual double | getElectromagneticWavelength (const double frequency) const | 
|  | Electromagnetic properties. 
 | 
| virtual std::complex< double > | getElectromagneticWaveNumber (const double frequency) const | 
|  | Electromagnetic properties. 
 | 
| virtual std::complex< double > | getElectromagneticImpedance (const double frequency) const | 
|  | Electromagnetic properties. 
 | 
| virtual | ~Material () | 
Implement the dispersion model proposed in [Holm2011]. 
The constitutive relation is give by
![\[ e_r(\omega) = \frac{1}{E_0} \frac{1+(j\omega\tau_\epsilon)^a}{1+(j\omega\tau_\sigma)^a} \]](form_110.png) 
where  denotes the DC bulk modulus,
 denotes the DC bulk modulus,  denotes the relaxiation time,
 denotes the relaxiation time,  denotes the retardation time, and
 denotes the retardation time, and  denotes the fractional exponent.
 denotes the fractional exponent.