Skip to content

Property Methods

Introduction

Property methods define material properties in a flexible and reusable way. They are used across μfem to describe quantities such as:

  • Thermal conductivity
  • Density
  • Heat capacity
  • Magnetic permeability
  • Other material parameters

Property methods define how a material property depends, for example, on temperature or other variables, and provide values automatically during simulation. Material properties are typically attached to materials and consumed by the corresponding models.

Property methods exist for both:

  • Scalar properties
  • Tensor properties

Note, that not all property methods here are supported by each model. In addition, individual models may also provide their own specialized property methods.

Scalar Property Methods

Scalar property methods describe material properties represented by a single value. Typical examples include density or heat capacity. They may also be used to represent tensor properties when the material is assumed to be isotropic.

Constant

The material property \(y\) is uniform and independent of temperature or any other state:

\[ y = y_0 \]

Used when the property variation is negligible or a linear approximation is sufficient. The property remains constant within the region of interest.

thermal_conductivity_my_material = 100.0

Linear Temperature Coefficient

The material property \(y\) varies linearly with temperature:

\[ y(T) = y_0 + \alpha (T - T_{\text{ref}}) \]

where:

  • \(T\) - local temperature
  • \(y_0\) - property value at the reference temperature
  • \(\alpha\) - temperature coefficient
  • \(T_{\text{ref}}\) - reference temperature

Used when moderate temperature dependence must be captured with a simple model.

thermal_conductivity_my_material = mufem.methods.LinearTemperatureCoefficient(
    reference_value=25.0,
    temperature_coefficient=2.5,
    reference_temperature=300.0,
)

Note that this method requires temperature to be present in the model.

Temperature Table

The material property \(y\) is defined by discrete data points and linearly interpolated:

\[ y(T) = y([T_0, T_1, \dots, T_{n-1}], [y_0, y_1, \dots, y_{n-1}]) \]

Used when experimental or literature data is available or the property exhibits nonlinear behavior.

thermal_conductivity_method = mufem.methods.TemperatureTable(
    temperature=[300, 400, 500, 600],
    values=[40, 100, 80, 70]
)

Note that this method requires temperature to be present in the model.

Function

The material property \(y\) is defined by an arbitrary scalar coefficient. This allows the property to depend on space and other field variables (such as temperature, magnetic flux density, etc.)

$$ y(\mathbf{x}) = e{-x2} $$ This method is mainly used for benchmarking or for dependencies not covered by other property methods.

thermal_conductivity = mufem.methods.ScalarCoefficient("exp(-x()^2)")

Note that no automatic linearization is provided, which may result in slower convergence.

Tensor Property Methods

Tensor property methods describe matrix-valued material properties, typically symmetric, used for anisotropic materials such as:

  • Thermal conductivity
  • Electrical conductivity
  • Magnetic permeability
  • Elasticity

Isotropic

\[ \mathbf{Y} = \begin{pmatrix} y & 0 & 0 \\ 0 & y & 0 \\ 0 & 0 & y \end{pmatrix} = y \mathbf{I} \]

An isotropic tensor is specified using a scalar property method.

electric_conductivity_my_material = 5.6e7

Transverse (Transverse Isotropic)

The tensor has one value along a preferred (parallel) direction and another value in the transverse plane:

\[ \mathbf{Y} = \begin{pmatrix} y_{\parallel} & 0 & 0 \\ 0 & y_{\perp} & 0 \\ 0 & 0 & y_{\perp} \end{pmatrix} \]

where: - \(y_\parallel\) - property along the preferred (parallel) direction - \(y_\perp\) - property along the preferred (parallel) direction

This form is common in layered materials, laminates, and strongly oriented media.

electric_conductivity_my_material =  mufem.methods.Transverse(
    parallel=5.6e7,
    transverse=1.0e4
)

Orthotropic

The tensor has different values along three orthogonal directions:

\[ \mathbf{Y} = \begin{pmatrix} y_{xx} & 0 & 0 \\ 0 & y_{yy} & 0 \\ 0 & 0 & y_{zz} \end{pmatrix} \]

This represents materials where the property:

  • Is anisotropic but constant in space and temperature
  • Does not depend on the solution field
  • Remains fixed throughout the simulation
electric_conductivity_my_material =  mufem.methods.Orthotropic(
    xx=5.6e7,
    yy=5.6e7,
    zz=1.0e4
)

General Symmetric

A fully symmetric tensor:

\[ \mathbf{Y} = \begin{pmatrix} y_{xx} & y_{xy} & y_{xz} \\ y_{xy} & y_{yy} & y_{yz} \\ y_{xz} & y_{yz} & y_{zz} \end{pmatrix} \]

This is the most general symmetric tensor and is commonly used for anisotropic but reciprocal materials

electric_conductivity_my_material =  mufem.methods.SymmetricTensor(
    xx=5.6e7, xy=3.0e5, xz=3.0e5,
              yy=5.6e7, yz=4.0e5,
                        zz=1.0e4,
)

Note that any symmetric tensor can be diagonalized $$ \mathbf{Y}{\textrm{g}} = \mathbf{R} \mathbf{Y}^T $$ where: - }} \mathbf{R\(\mathbf{Y}_{\textrm{g}}\) - tensor in global coordinates - \(\mathbf{Y}_{\textrm{p}}\) - principal (orthotropic) tensor - \(\mathbf{R}\) - rotation/coordinate transform

For this reason, it is often preferable to use the orthotropic representation together with an appropriate coordinate transformation.

General (Non-Symmetric)

Under certain conditions, materials may be described by non-symmetric tensors (for example Hall conductivity):

\[ \mathbf{Y} = \begin{pmatrix} y_{xx} & y_{xy} & y_{xz} \\ y_{yx} & y_{yy} & y_{yz} \\ y_{zx} & y_{zy} & y_{zz} \end{pmatrix} \]

This is the most general tensor form with no symmetry assumptions.

electric_conductivity_my_material =  mufem.methods.Tensor(
    xx=5.6e7, xy=1.0e5, xz=1.0e5,
    yx=1.0e4, yy=5.6e7, yz=3.2e3,
    zx=1.2e2, zy=2.2e4, zz=1.0e4,
)