Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ralberd/refactor hyper visco #74

Merged
merged 10 commits into from
Dec 5, 2023
Prev Previous commit
Next Next commit
removing test that was used for debugging
ralberd committed Dec 1, 2023
commit d6b3a154f19a58e4502aa6c5ab9b7ad608e9bc2e
29 changes: 0 additions & 29 deletions optimism/material/test/test_HyperVisco.py
Original file line number Diff line number Diff line change
@@ -7,8 +7,6 @@
from optimism.material import HyperViscoelastic as HyperVisco
from optimism.test.TestFixture import TestFixture

from optimism import TensorMath

def make_disp_grad_from_strain(strain):
return linalg.expm(strain) - np.identity(3)

@@ -59,33 +57,6 @@ def test_regression_nonzero_point(self):
0.433881277313, 0.079038974065, 1.055381729505])
self.assertArrayNear(state, stateGold, 12)

def test_log_strain_updates(self):
key = jax.random.PRNGKey(1)
dispGrad = jax.random.uniform(key, (3, 3))
initialState = self.compute_initial_state()
dt = 1.0

props = np.array([
self.props['equilibrium bulk modulus'],
self.props['equilibrium shear modulus'],
self.props['non equilibrium shear modulus'],
self.props['relaxation time']
])

Ee_trial = HyperVisco._compute_elastic_logarithmic_strain(dispGrad, initialState)
state_inc = HyperVisco._compute_state_increment(Ee_trial, dt, props)

Ee_new_way = Ee_trial - state_inc # doesn't work

# old implementation
F = dispGrad + np.identity(3)
Fv_old = initialState.reshape((3, 3))
Fv_new = linalg.expm(state_inc)@Fv_old
Fe = F @ np.linalg.inv(Fv_new)
Ee_old_way = TensorMath.mtk_log_sqrt(Fe.T @ Fe)

self.assertArrayNear(Ee_new_way.ravel(), Ee_old_way.ravel(), 12)


if __name__ == '__main__':
unittest.main()