m_interpolation.py

m_interpolation.composition_interpolation(mesh, tracers_in_cells, tracers, column, function)

Interpolates the composition from tracers to a discontinuous FEM function composition.

m_interpolation.melt_interpolation(mesh, tracers_in_cells, tracers, column, function)

Interpolates the melt fraction and the associated temperature correction from the tracers to discontinuous FEM functions \(\chi_m\) and \(\Delta T\), respectively.

m_interpolation.scalar_interpolation(mesh, tracers_in_cells, tracers, column, avg_type, function)

Interpolates a scalar function from tracers to a discontinuous FEM function.

\[f_{mesh} = \frac{1}{N} \sum_{tracer = 1}^{N} f_{tracer}\]
m_interpolation.stress_interpolation(mesh, tracers_in_cells, tracers, stress_tensor)

Interpolates the deviatoric stress tensor components \(\sigma_{xx}\) and \(\sigma_{xy}\) from tracers to a discontinuous FEM function.

m_interpolation.stress_reduction(mesh, tracers_in_cells, tracers, yield_function, yield_stress, stress_invariant)

Reduces the deviatoric stress tensor components when yielding.

m_interpolation.stress_rotation(mesh, tracers_in_cells, tracers, vorticity_tensor, dt)

Performs the rotation of the deviatoric stress tensor components.

\[\boldsymbol{\sigma}_{rot} = \boldsymbol{\sigma} + \Delta t(\boldsymbol{\sigma}\boldsymbol{W} - \boldsymbol{W}\boldsymbol{\sigma}) \]
m_interpolation.stress_update(mesh, tracers_in_cells, tracers, visc, strain_rate_tensor, z_function)

Updates the deviatoric stress tensor components on tracers.

m_interpolation.tracer_count_interpolation(mesh, tracers_in_cells, function)

Interpolates the number of tracers in the cells to a discontinuous FEM function tracer_count.

m_interpolation.tracer_counting(mesh, tracers_in_cells, tracers)