Material

Material

class guwlib.guw_objects.Material(material_name)

Base class to represent materials by their properties and by their material-dependent dispersion data.

Parameters:

material_name (str) – Name of the material for which to load the data.

Variables:
  • name (str) – Name of the material.

  • properties (dict) – Dictionary storing the material properties.


IsotropicMaterial

class guwlib.guw_objects.IsotropicMaterial(material_name)

Bases: Material

Represents an isotropic material, e.g. 1100 aluminum alloy.

An IsotropicMaterial instance is initialized by passing a valid material name to its constructor. The respective material properties are then loaded from the guwlib/data/isotropic_materials.json file.

Raises:

ValueError: If the material name doesn’t exist in the material library (*.JSON file).

Parameters:

material_name (str) – Name of the isotropic material for which to load the data.


PiezoElectricMaterial

class guwlib.guw_objects.PiezoElectricMaterial(material_name)

Bases: Material

Represents a piezoelectric material, e.g. PIC255.

A PiezoelectricMaterial instance is initialized by passing a valid material name to its constructor. The respective material properties are then loaded from the guwlib/data/piezoelectric_materials.json file.

Raises:

ValueError: If the material name doesn’t exist in the material library (*.JSON file).

Parameters:

material_name (str) – Name of the piezoelectric material for which to load the data.


Adding materials to the material library

A lot of materials are already available by default and can be loaded by providing their name. All material data is stored in the data directory (guwlib/data/) in respective .JSON and .TXT files. By default, the content of this directory looks like this:

guwlib/
│   ...
│
├───data/
│       AluminumAlloy1100_A_Lamb.txt
│       AluminumAlloy1100_S_Lamb.txt
│       isotropic_materials.json
│       piezoelectric_materials.json
│
├───...

For each material class, the respective .JSON file stores material properties, like Youngs modulus and density. Please inspect these files to see which materials are available. To add your own materials, follow the format of the existing entries.

If a material is used for the Plate, GUWlib will also try to obtain analytical dispersion data for this material. This dispersion data has to be stored in two .TXT files for each material, and the files have to be named after this convention:

  • <material_name>_S_Lamb.txt (symmetric modes data)

  • <material_name>_A_Lamb.txt (antisymmetric modes data)

These files can be created with DLR Dispersion Calculator. Make sure that your .TXT files are formatted the same way as the existing example files for 1100 aluminum alloy.