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

The implementation of the decorator pattern requires the class to contain a pointer to itself. More...

#include <MaterialDecorator.hpp>

Inheritance diagram for MaterialDecorator:
Material AcousticProperty ElasticProperty HNAcousticProperty

Public Member Functions

 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 MaterialDecoratorclone () const
virtual void print () const
 Print the parameters associated with the material.
virtual ~MaterialDecorator ()
virtual double getBulkModulus () const
 Acoustic properties.
virtual double getDensity () const
 Acoustic properties.
virtual double getAcousticConductivity () const
virtual double getAcousticPhaseVelocity (const double frequency) const
 Acoustic properties.
virtual double getAcousticWavelength (const double frequency) const
 Acoustic properties.
virtual std::complex< double > getAcousticWaveNumber (const double frequency) const
 Acoustic properties.
virtual std::complex< double > getAcousticImpedance (const double frequency) const
 Acoustic properties.
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 ()

Protected Attributes

Materialmaterial

Detailed Description

The implementation of the decorator pattern requires the class to contain a pointer to itself.

Thus, by the Rule of Three in C++ programming, we need to overload the copy constructor, the assignment constructor, and the destructor.

Constructor & Destructor Documentation

MaterialDecorator::MaterialDecorator ( )
MaterialDecorator::MaterialDecorator ( Material m)
MaterialDecorator::MaterialDecorator ( const MaterialDecorator the_decorator)
MaterialDecorator::~MaterialDecorator ( )
virtual

Member Function Documentation

MaterialDecorator * MaterialDecorator::clone ( ) const
virtual

Implements Material.

Reimplemented in HNAcousticProperty, AcousticProperty, and ElasticProperty.

double MaterialDecorator::getAcousticConductivity ( ) const
virtual

Implements Material.

Reimplemented in AcousticProperty.

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

Acoustic properties.

Implements Material.

Reimplemented in HNAcousticProperty, and AcousticProperty.

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

Acoustic properties.

Implements Material.

Reimplemented in AcousticProperty.

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

Acoustic properties.

Implements Material.

Reimplemented in AcousticProperty.

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

Acoustic properties.

Implements Material.

Reimplemented in HNAcousticProperty, and AcousticProperty.

double MaterialDecorator::getBulkModulus ( ) const
virtual

Acoustic properties.

Implements Material.

Reimplemented in ElasticProperty, and AcousticProperty.

double MaterialDecorator::getDensity ( ) const
virtual

Acoustic properties.

Implements Material.

Reimplemented in AcousticProperty.

double MaterialDecorator::getElectricConductivity ( ) const
virtual

Electromagnetic properties.

Implements Material.

std::complex< double > MaterialDecorator::getElectromagneticImpedance ( const double  frequency) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getElectromagneticPhaseVelocity ( const double  frequency) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getElectromagneticWavelength ( const double  frequency) const
virtual

Electromagnetic properties.

Implements Material.

std::complex< double > MaterialDecorator::getElectromagneticWaveNumber ( const double  frequency) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getLameFirst ( ) const
virtual

Elastic properties, represented by $\lambda$.

Implements Material.

Reimplemented in ElasticProperty.

double MaterialDecorator::getMagneticConductivity ( ) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getRelativePermeability ( ) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getRelativePermittivity ( ) const
virtual

Electromagnetic properties.

Implements Material.

double MaterialDecorator::getShearModulus ( ) const
virtual

Elastic properties, represented by $\mu$ or $G$.

Implements Material.

Reimplemented in ElasticProperty.

double MaterialDecorator::getSpecificHeat ( ) const
virtual

Thermal properties.

Implements Material.

double MaterialDecorator::getThermalConductivity ( ) const
virtual

Thermal properties.

Implements Material.

double MaterialDecorator::getThermalExpansion ( ) const
virtual

Thermal properties.

Implements Material.

double MaterialDecorator::getYoungsModulus ( ) const
virtual

Elastic properties.

Implements Material.

Reimplemented in ElasticProperty.

MaterialDecorator & MaterialDecorator::operator= ( const MaterialDecorator the_decorator)
bool MaterialDecorator::operator== ( const Material m) const
virtual

The objects need to be equality-comparable to be used with the Flyweight pattern.

We overload the equality operator.

Implements Material.

void MaterialDecorator::print ( ) const
virtual

Print the parameters associated with the material.

Implements Material.

Reimplemented in HNAcousticProperty, AcousticProperty, and ElasticProperty.

Member Data Documentation

Material* MaterialDecorator::material
protected

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