Workflow

Workflow

Offline phase: Training of the thermo-mechanical NTFA

  1. Generate data using thermo-elasto-plastic simulations on the microscale at select temperatures \(\theta \in \mathcal{T}\). For that, we used an in-house FE solver. However, any other suitable simulation software could be used.

  2. Compute a reduced basis consisting of plastic modes \(\underline{\underline{P}}_{\mathsf{p}}\) via snapshot POD of the simulated plastic strain fields \(\{\varepsilon_\mathsf{p}(x | \theta)\}^n_{i=1}\). The corresponding implementation is available in our AdaptiveThermoMechROM repository in the module ntfa.py.

  3. Perform additional linear-elastic simulations to determined self-equilibrated fields for the plastic modes \(\underline{\underline{P}}_\mathsf{p}\) at select temperatures \(\theta \in \mathcal{T}\). Again, we used our in-house FE solver for that.

  4. Based on the generated data at select temperatures \(\theta \in \mathcal{T}\) we perform an interpolation to arbitrarily many intermediate temperatures \(\theta_j\). This method is published in our paper “Reduced order homogenization of thermoelastic materials with strong temperature-dependence and comparison to a machine-learned model”, where we show that it produces highly accurate results while the effort is almost on par with linear interpolation.

  5. Using the interpolated data, the NTFA system matrices \(\underline{\underline{A}}(\theta_j)\), \(\underline{\underline{D}}(\theta_j)\), \(\bar{\underline{\underline{C}}}(\theta_j)\), \(\underline{\tau}_{\mathrm{\theta}}(\theta_j)\), and \(\underline{\tau}_{\mathsf{p}}(\theta_j)\) are computed and stored as tabular data. The corresponding implementation is available in our AdaptiveThermoMechROM repository in the module ntfa.py.

Online phase: Application of the thermo-mechanical NTFA in simulations on the macroscale

  1. Load the tabular data for the NTFA matrices \(\underline{\underline{A}}(\theta_j)\), \(\underline{\underline{D}}(\theta_j)\), \(\bar{\underline{\underline{C}}}(\theta_j)\), \(\underline{\tau}_{\mathrm{\theta}}(\theta_j)\), and \(\underline{\tau}_{\mathsf{p}}(\theta_j)\) that are generated in the offline phase based on direct numerical simulations on the microscale. Optionally truncate the NTFA modes \(N_{\mathrm{modes}}\) to be used.

  2. Perform a linear interpolation to determine the NTFA matrices at the current model temperature based on the tabular data. Given that the tabular data is available at sufficiently many temperatures, the linear interpolation provides results with decent accuracy. This is done using the class thermontfa.TabularInterpolation.

  3. Use the tabular data to initialize the thermo-mechanical NTFA UMAT that is implemented in the class thermontfa.ThermoMechNTFA. This reference implementation in Python can be transcribed to an UMAT for other academic or commercial simulation softwares. The numerical experiments in our paper are conducted using an implementation of the thermo-mechanical NTFA UMAT in C++ for an in-house FE solver.