Acoustic FDTD Solver
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
AcousticProperty Class Reference

Assume the following analogy between the acoustic quantities and the electromagnetic quantities. More...

#include <AcousticProperty.hpp>

Inheritance diagram for AcousticProperty:
MaterialDecorator Material HNAcousticProperty

Public Member Functions

 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)
AcousticPropertyoperator= (const AcousticProperty &the_property)
AcousticPropertyclone () const
void print () const
 Print the parameters associated with the material.
 ~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
virtual std::complex< double > getAcousticWaveNumber (const double freq) const
 Acoustic properties.
virtual std::complex< double > getAcousticImpedance (const double freq) const
 Acoustic properties.
virtual double getEquivalentBulkModulus (const double freq) const
virtual double getEquivalentConductivity (const double freq) const
- Public Member Functions inherited from MaterialDecorator
 MaterialDecorator ()
 MaterialDecorator (Material *m)
 MaterialDecorator (const MaterialDecorator &the_decorator)
MaterialDecoratoroperator= (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 $\lambda$.
virtual double getShearModulus () const
 Elastic properties, represented by $\mu$ or $G$.
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.
- Public Member Functions inherited from Material
virtual ~Material ()

Static Public Member Functions

static double getConductivityFromAttenuation (const double freq, const double attn, const double bulk_modulus, const double density)
 The attenuation is frequently specified for acoustic medium.

Protected Attributes

double K
 phase velocity (m/s)
double rho
 density (kg/m^3)
double xi
 conductive loss
- Protected Attributes inherited from MaterialDecorator
Materialmaterial

Detailed Description

Assume the following analogy between the acoustic quantities and the electromagnetic quantities.

$ \epsilon $ corresponds to $ \frac{1}{K}+\frac{\xi}{j\omega} $ and $ \mu $ corresponds to $ \rho + \frac{\xi^\ast}{j\omega} $.

Constructor & Destructor Documentation

AcousticProperty::AcousticProperty ( )

Acoustic properties of water.

AcousticProperty::AcousticProperty ( const std::string &  name)
AcousticProperty::AcousticProperty ( const double  bulk_modulus,
const double  density,
const double  conductive_loss 
)
AcousticProperty::AcousticProperty ( Material m,
const double  phase_velocity,
const double  density,
const double  attn = 0 
)
AcousticProperty::AcousticProperty ( const AcousticProperty the_property)
AcousticProperty::~AcousticProperty ( )

Member Function Documentation

AcousticProperty * AcousticProperty::clone ( ) const
virtual

Reimplemented from MaterialDecorator.

Reimplemented in HNAcousticProperty.

double AcousticProperty::getAbsorptionDepth ( const double  freq) const
virtual
double AcousticProperty::getAcousticConductivity ( ) const
virtual

Reimplemented from MaterialDecorator.

std::complex< double > AcousticProperty::getAcousticImpedance ( const double  frequency) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

Reimplemented in HNAcousticProperty.

double AcousticProperty::getAcousticPhaseVelocity ( const double  frequency) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

double AcousticProperty::getAcousticWavelength ( const double  frequency) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

std::complex< double > AcousticProperty::getAcousticWaveNumber ( const double  frequency) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

Reimplemented in HNAcousticProperty.

double AcousticProperty::getBulkModulus ( ) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

double AcousticProperty::getConductivityFromAttenuation ( const double  freq,
const double  attn,
const double  bulk_modulus,
const double  density 
)
static

The attenuation is frequently specified for acoustic medium.

This function calculate the conductive loss from attenuation. Its returned value can be used to instantiate an AcousticProperty object.

Parameters
freq(Hz)
attn(dB/m)
bulk_modulus(Pa)
density(m/kg^{-3})
double AcousticProperty::getDensity ( ) const
virtual

Acoustic properties.

Reimplemented from MaterialDecorator.

double AcousticProperty::getEquivalentBulkModulus ( const double  freq) const
virtual
Returns
Return AcousticProperty::K for all frequencies. When this function is overriden in the child class, its return value is frequency dependent due to the dispersion model.

Reimplemented in HNAcousticProperty.

double AcousticProperty::getEquivalentConductivity ( const double  freq) const
virtual
Returns
Return AcousticProperty::xi for all frequencies. When this function is overriden in the child class, its return value is frequency dependent due to the dispersion model.

Reimplemented in HNAcousticProperty.

AcousticProperty & AcousticProperty::operator= ( const AcousticProperty the_property)
void AcousticProperty::print ( ) const
virtual

Print the parameters associated with the material.

Reimplemented from MaterialDecorator.

Reimplemented in HNAcousticProperty.

Member Data Documentation

double AcousticProperty::K
protected

phase velocity (m/s)

double AcousticProperty::rho
protected

density (kg/m^3)

double AcousticProperty::xi
protected

conductive loss


The documentation for this class was generated from the following files: