Mentions légales du service

Skip to content
Snippets Groups Projects
Commit fe001fd1 authored by Martin Genet's avatar Martin Genet
Browse files

For F-based homogeneous deformation, modulate around Id

parent e60d7d19
No related branches found
No related tags found
No related merge requests found
...@@ -448,9 +448,10 @@ class Mapping: ...@@ -448,9 +448,10 @@ class Mapping:
pass pass
def init_t_translation(self, t): def init_t_translation(self, t):
self.D[0] = self.deformation["Dx"]*self.phi(t) if ("Dx" in self.deformation.keys()) else 0. self.D[0] = self.deformation["Dx"] if ("Dx" in self.deformation.keys()) else 0.
self.D[1] = self.deformation["Dy"]*self.phi(t) if ("Dy" in self.deformation.keys()) else 0. self.D[1] = self.deformation["Dy"] if ("Dy" in self.deformation.keys()) else 0.
self.D[2] = self.deformation["Dz"]*self.phi(t) if ("Dz" in self.deformation.keys()) else 0. self.D[2] = self.deformation["Dz"] if ("Dz" in self.deformation.keys()) else 0.
self.D *= self.phi(t)
def init_t_rotation(self, t): def init_t_rotation(self, t):
self.C[0] = self.deformation["Cx"] if ("Cx" in self.deformation.keys()) else 0. self.C[0] = self.deformation["Cx"] if ("Cx" in self.deformation.keys()) else 0.
...@@ -472,31 +473,31 @@ class Mapping: ...@@ -472,31 +473,31 @@ class Mapping:
self.Rinv[:,:] = numpy.linalg.inv(self.R) self.Rinv[:,:] = numpy.linalg.inv(self.R)
def init_t_homogeneous(self, t): def init_t_homogeneous(self, t):
if any(E in self.deformation.keys() for E in ("Exx", "Eyy", "Ezz")): if (any(E in self.deformation.keys() for E in ("Exx", "Eyy", "Ezz"))): # build F from E
Exx = self.deformation["Exx"]*self.phi(t) if ("Exx" in self.deformation.keys()) else 0. Exx = self.deformation["Exx"] if ("Exx" in self.deformation.keys()) else 0.
Eyy = self.deformation["Eyy"]*self.phi(t) if ("Eyy" in self.deformation.keys()) else 0. Eyy = self.deformation["Eyy"] if ("Eyy" in self.deformation.keys()) else 0.
Ezz = self.deformation["Ezz"]*self.phi(t) if ("Ezz" in self.deformation.keys()) else 0. Ezz = self.deformation["Ezz"] if ("Ezz" in self.deformation.keys()) else 0.
self.F = numpy.array([[Exx, 0., 0.], self.F = numpy.array([[Exx, 0., 0.],
[ 0., Eyy, 0.], [ 0., Eyy, 0.],
[ 0., 0., Ezz]]) [ 0., 0., Ezz]])*self.phi(t)
self.F *= 2 self.F *= 2
self.F += numpy.eye(3) self.F += numpy.eye(3)
w, v = numpy.linalg.eig(self.F) w, v = numpy.linalg.eig(self.F)
# assert (numpy.diag(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v)) == w).all(), str(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v))+" ≠ "+str(numpy.diag(w))+". Aborting." # assert (numpy.diag(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v)) == w).all(), str(numpy.dot(numpy.dot(numpy.transpose(v), self.F), v))+" ≠ "+str(numpy.diag(w))+". Aborting."
self.F = numpy.dot(numpy.dot(v, numpy.diag(numpy.sqrt(w))), numpy.transpose(v)) self.F = numpy.dot(numpy.dot(v, numpy.diag(numpy.sqrt(w))), numpy.transpose(v))
else: else:
Fxx = self.deformation["Fxx"]*self.phi(t) if ("Fxx" in self.deformation.keys()) else 0. Fxx = self.deformation["Fxx"] if ("Fxx" in self.deformation.keys()) else 0.
Fyy = self.deformation["Fyy"]*self.phi(t) if ("Fyy" in self.deformation.keys()) else 0. Fyy = self.deformation["Fyy"] if ("Fyy" in self.deformation.keys()) else 0.
Fzz = self.deformation["Fzz"]*self.phi(t) if ("Fzz" in self.deformation.keys()) else 0. Fzz = self.deformation["Fzz"] if ("Fzz" in self.deformation.keys()) else 0.
Fxy = self.deformation["Fxy"]*self.phi(t) if ("Fxy" in self.deformation.keys()) else 0. Fxy = self.deformation["Fxy"] if ("Fxy" in self.deformation.keys()) else 0.
Fyx = self.deformation["Fyx"]*self.phi(t) if ("Fyx" in self.deformation.keys()) else 0. Fyx = self.deformation["Fyx"] if ("Fyx" in self.deformation.keys()) else 0.
Fyz = self.deformation["Fyz"]*self.phi(t) if ("Fyz" in self.deformation.keys()) else 0. Fyz = self.deformation["Fyz"] if ("Fyz" in self.deformation.keys()) else 0.
Fzy = self.deformation["Fzy"]*self.phi(t) if ("Fzy" in self.deformation.keys()) else 0. Fzy = self.deformation["Fzy"] if ("Fzy" in self.deformation.keys()) else 0.
Fzx = self.deformation["Fzx"]*self.phi(t) if ("Fzx" in self.deformation.keys()) else 0. Fzx = self.deformation["Fzx"] if ("Fzx" in self.deformation.keys()) else 0.
Fxz = self.deformation["Fxz"]*self.phi(t) if ("Fxz" in self.deformation.keys()) else 0. Fxz = self.deformation["Fxz"] if ("Fxz" in self.deformation.keys()) else 0.
self.F = numpy.array([[Fxx, Fxy, Fxz], self.F = numpy.eye(3) + (numpy.array([[Fxx, Fxy, Fxz],
[Fyx, Fyy, Fyz], [Fyx, Fyy, Fyz],
[Fzx, Fzy, Fzz]]) [Fzx, Fzy, Fzz]])-numpy.eye(3))*self.phi(t)
self.Finv = numpy.linalg.inv(self.F) self.Finv = numpy.linalg.inv(self.F)
def init_t_heart(self, t): def init_t_heart(self, t):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment