Acoustic FDTD Solver
Public Member Functions | List of all members
Material Class Reference

The Uniform Material Interface (UMI) More...

#include <Material.hpp>

Inheritance diagram for Material:
MaterialDecorator Vacuum AcousticProperty ElasticProperty HNAcousticProperty

Public Member Functions

virtual Materialclone () const =0
virtual void print () const =0
 Print the parameters associated with the material.
virtual bool operator== (const Material &m) const =0
 The objects need to be equality-comparable to be used with the Flyweight pattern.
virtual ~Material ()
virtual double getBulkModulus () const =0
 Acoustic properties.
virtual double getDensity () const =0
 Acoustic properties.
virtual double getAcousticConductivity () const =0
virtual double getAcousticPhaseVelocity (const double frequency) const =0
 Acoustic properties.
virtual double getAcousticWavelength (const double frequency) const =0
 Acoustic properties.
virtual std::complex< double > getAcousticWaveNumber (const double frequency) const =0
 Acoustic properties.
virtual std::complex< double > getAcousticImpedance (const double frequency) const =0
 Acoustic properties.
virtual double getYoungsModulus () const =0
 Elastic properties.
virtual double getLameFirst () const =0
 Elastic properties, represented by $\lambda$.
virtual double getShearModulus () const =0
 Elastic properties, represented by $\mu$ or $G$.
virtual double getThermalConductivity () const =0
 Thermal properties.
virtual double getSpecificHeat () const =0
 Thermal properties.
virtual double getThermalExpansion () const =0
 Thermal properties.
virtual double getElectricConductivity () const =0
 Electromagnetic properties.
virtual double getRelativePermittivity () const =0
 Electromagnetic properties.
virtual double getRelativePermeability () const =0
 Electromagnetic properties.
virtual double getMagneticConductivity () const =0
 Electromagnetic properties.
virtual double getElectromagneticPhaseVelocity (const double frequency) const =0
 Electromagnetic properties.
virtual double getElectromagneticWavelength (const double frequency) const =0
 Electromagnetic properties.
virtual std::complex< double > getElectromagneticWaveNumber (const double frequency) const =0
 Electromagnetic properties.
virtual std::complex< double > getElectromagneticImpedance (const double frequency) const =0
 Electromagnetic properties.

Detailed Description

The Uniform Material Interface (UMI)

The decorator pattern is used for materials. The choice of the decorator pattern is based on the observation that the physical properties of materials are independent, and can be easily grouped together to describe one material.

Constructor & Destructor Documentation

virtual Material::~Material ( )
inlinevirtual

Member Function Documentation

virtual Material* Material::clone ( ) const
pure virtual
virtual double Material::getAcousticConductivity ( ) const
pure virtual

Implemented in AcousticProperty, MaterialDecorator, and Vacuum.

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

Acoustic properties.

Implemented in HNAcousticProperty, AcousticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getAcousticPhaseVelocity ( const double  frequency) const
pure virtual

Acoustic properties.

Implemented in AcousticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getAcousticWavelength ( const double  frequency) const
pure virtual

Acoustic properties.

Implemented in AcousticProperty, MaterialDecorator, and Vacuum.

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

Acoustic properties.

Implemented in HNAcousticProperty, AcousticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getBulkModulus ( ) const
pure virtual

Acoustic properties.

Implemented in ElasticProperty, AcousticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getDensity ( ) const
pure virtual

Acoustic properties.

Implemented in AcousticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getElectricConductivity ( ) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

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

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getElectromagneticPhaseVelocity ( const double  frequency) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getElectromagneticWavelength ( const double  frequency) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

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

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getLameFirst ( ) const
pure virtual

Elastic properties, represented by $\lambda$.

Implemented in ElasticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getMagneticConductivity ( ) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getRelativePermeability ( ) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getRelativePermittivity ( ) const
pure virtual

Electromagnetic properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getShearModulus ( ) const
pure virtual

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

Implemented in ElasticProperty, MaterialDecorator, and Vacuum.

virtual double Material::getSpecificHeat ( ) const
pure virtual

Thermal properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getThermalConductivity ( ) const
pure virtual

Thermal properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getThermalExpansion ( ) const
pure virtual

Thermal properties.

Implemented in MaterialDecorator, and Vacuum.

virtual double Material::getYoungsModulus ( ) const
pure virtual

Elastic properties.

Implemented in ElasticProperty, MaterialDecorator, and Vacuum.

virtual bool Material::operator== ( const Material m) const
pure virtual

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

We overload the equality operator.

Implemented in MaterialDecorator, and Vacuum.

virtual void Material::print ( ) const
pure virtual

Print the parameters associated with the material.

Implemented in HNAcousticProperty, AcousticProperty, ElasticProperty, MaterialDecorator, and Vacuum.


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