diff --git a/examples/uniaxial/UniaxialCycle.py b/examples/uniaxial/UniaxialCycle.py index a837f87..d8066a8 100644 --- a/examples/uniaxial/UniaxialCycle.py +++ b/examples/uniaxial/UniaxialCycle.py @@ -79,7 +79,7 @@ def __init__(self): materialModel = Material.create_material_model_functions(props) self.mechanicsFunctions = Mechanics.create_mechanics_functions( - self.fs, "plane strain", materialModel, dt=dt + self.fs, "plane strain", materialModel ) self.outputForce = [] @@ -99,14 +99,14 @@ def assemble_sparse(self, Uu, p): def energy_function(self, Uu, p): U = self.create_field(Uu, p) internalVariables = p[1] - return self.mechanicsFunctions.compute_strain_energy(U, internalVariables) + return self.mechanicsFunctions.compute_strain_energy(U, internalVariables, dt) @partial(jax.jit, static_argnums=0) @partial(jax.value_and_grad, argnums=2) def compute_reactions_from_bcs(self, Uu, Ubc, internalVariables): U = self.dofManager.create_field(Uu, Ubc) - return self.mechanicsFunctions.compute_strain_energy(U, internalVariables) + return self.mechanicsFunctions.compute_strain_energy(U, internalVariables, dt) def create_field(self, Uu, p): @@ -193,7 +193,7 @@ def run(self): Uu = EqSolver.nonlinear_equation_solve(objective, Uu, p, settings) state = self.mechanicsFunctions.\ - compute_updated_internal_variables(self.create_field(Uu, p), p[1]) + compute_updated_internal_variables(self.create_field(Uu, p), p[1], dt) p = Objective.param_index_update(p, 1, state) self.write_output(Uu, p, i) @@ -239,7 +239,7 @@ def make_FD_plot(self): materialModel = Neohookean.create_material_model_functions(props) app.mechanicsFunctions = Mechanics.create_mechanics_functions( - app.fs, "plane strain", materialModel, dt=0.0 + app.fs, "plane strain", materialModel ) app.run() diff --git a/optimism/Mechanics.py b/optimism/Mechanics.py index 27a93f2..117481b 100644 --- a/optimism/Mechanics.py +++ b/optimism/Mechanics.py @@ -247,8 +247,7 @@ def compute_initial_state(): def create_mechanics_functions(functionSpace, mode2D, materialModel, - pressureProjectionDegree=None, - dt=0.0): + pressureProjectionDegree=None): fs = functionSpace if mode2D == 'plane strain': @@ -269,15 +268,15 @@ def modify_element_gradient(elemGrads, elemShapes, elemVols, elemNodalDisps, ele return grad_2D_to_3D(elemGrads, elemShapes, elemVols, elemNodalDisps, elemNodalCoords) - def compute_strain_energy(U, stateVariables, dt=dt): + def compute_strain_energy(U, stateVariables, dt=0.0): return _compute_strain_energy(fs, U, stateVariables, dt, materialModel.compute_energy_density, modify_element_gradient) - def compute_updated_internal_variables(U, stateVariables, dt=dt): + def compute_updated_internal_variables(U, stateVariables, dt=0.0): return _compute_updated_internal_variables(fs, U, stateVariables, dt, materialModel.compute_state_new, modify_element_gradient) - def compute_element_stiffnesses(U, stateVariables, dt=dt): + def compute_element_stiffnesses(U, stateVariables, dt=0.0): return _compute_element_stiffnesses(U, stateVariables, dt, fs, materialModel.compute_energy_density, modify_element_gradient) @@ -285,7 +284,7 @@ def compute_element_stiffnesses(U, stateVariables, dt=dt): output_constitutive = value_and_grad(output_lagrangian, 1) - def compute_output_energy_densities_and_stresses(U, stateVariables, dt=dt): + def compute_output_energy_densities_and_stresses(U, stateVariables, dt=0.0): return FunctionSpace.evaluate_on_block(fs, U, stateVariables, dt, output_constitutive, slice(None), modify_element_gradient=modify_element_gradient)