17 Homework 4
Viscoplasticity & Parameter Identification via FEM
Due date: TBD — submitted via Moodle
This homework has two independent parts.
17.1 Part A — Rate-Dependent Plasticity (Viscoplasticity)
Goal: Extend the J2 plasticity code from HW3 to include rate effects.
17.1.1 A.1 — Perzyna-type Implementation
Modify j2_plasticity_update to implement a Perzyna viscoplastic model: \[
\Delta\gamma = \frac{\Delta t}{\eta}\left\langle \frac{f}{\sigma_{y0}} \right\rangle, \qquad
\langle x \rangle = \max(0, x).
\]
Additional inputs: viscosity parameter \(\eta\), time step \(\Delta t\).
17.1.2 A.2 — Rate Sensitivity Comparison
Simulate uniaxial tension at two strain rates:
- \(\dot{\varepsilon} = 10^{-3}\ \text{s}^{-1}\)
- \(\dot{\varepsilon} = 1.0\ \text{s}^{-1}\)
Plot \(\sigma_{11}\) vs \(\varepsilon_{11}\) for both rates and the rate-independent result (HW3) on the same graph.
Discuss: Effect of \(\dot{\varepsilon}\) and \(\eta\) on apparent yield stress and flow stress.
17.2 Part B — Parameter Identification via FEM
Goal: Calibrate J2 plasticity parameters by fitting a FEM simulation to provided experimental data.
17.2.1 B.1 — Provided Resources
exp_data.csv: stress-strain data from a simulated uniaxial test (unknown parameters).fem_template.py: FEniCSx template script for a quasi-static nonlinear simulation.
17.2.2 B.2 — FEM Integration
Adapt your j2_plasticity_update to the FEniCSx interface. Run a forward simulation with a known parameter set to verify correct integration and convergence.
17.2.3 B.3 — Inverse Analysis
Write an objective function residual(params, eps_exp, sig_exp) that:
- Takes
params = [sigma_y0_trial, H_trial](assume \(E\), \(\nu\) known). - Runs the FEM simulation.
- Returns the vector of residuals \(\sigma^\text{sim}(\varepsilon_k) - \sigma^\text{obs}_k\).
Use scipy.optimize.least_squares to minimise.
17.2.4 B.4 — Results
- Report identified parameters \(\sigma_{y0}^*\), \(H_\text{iso}^*\).
- Plot experimental data vs. simulated curve with identified parameters.
- Discuss quality of fit, convergence challenges, sensitivity to initial guess.
Note: \(H_\text{iso}^*\) denotes the identified value of \(H_\text{iso}\) from inverse modelling (L10).