from __future__ import print_function import xc_base import geom import math import teoria_bloques alpha1 = math.radians(20) beta1 = math.radians(280) alpha2 = math.radians(60) beta2 = math.radians(150) p = geom.Pos3d(0, 0, 0) R = geom.Vector3d(0, -1, 1) plBuz1 = teoria_bloques.computeDipPlane(alpha1, beta1, p) P1 = geom.HalfSpace3d(plBuz1) plBuz2 = teoria_bloques.computeDipPlane(alpha2, beta2, p) P2 = geom.HalfSpace3d(plBuz2) r = P1.getLima(P2) s = r.getProj(R) s = s.normalized() sTeor = geom.Vector3d(-0.7650, -0.5992, -0.2363) ratio1 = sTeor - s ratio1 = ratio1.getModulus() n1 = P1.getNormalExterior() n2 = P2.getNormalExterior()
#Exemple 1.7 of the thesis «La teoría de bloque aplicada a la dinámica #de rocas» Juan Carlos Ayes Zamudio from __future__ import print_function import xc_base import geom import math import teoria_bloques alpha1=math.radians(30) beta1=math.radians(320) alpha2=math.radians(50) beta2=math.radians(160) p=geom.Pos3d(0,0,0) plBuz1=teoria_bloques.computeDipPlane(alpha1,beta1,p) P1=geom.HalfSpace3d(plBuz1) plBuz2=teoria_bloques.computeDipPlane(alpha2,beta2,p) P2=geom.HalfSpace3d(plBuz2) delta=P1.getAngleWithHalfSpace3d(P2) deltaTeor=math.acos(0.1968/0.8907/0.99) ratio1= math.fabs(deltaTeor-delta)/deltaTeor import os fname= os.path.basename(__file__) if math.fabs(ratio1)<0.021: print("test ",fname,": ok.") else: print("test ",fname,": ERROR.")
#Example 1.13 of the thesis «La teoría de bloque aplicada a la dinámica #de rocas» by Juan Carlos Ayes Zamudio from __future__ import print_function import xc_base import geom import math import teoria_bloques alpha=math.radians(50) beta=math.radians(290) p=geom.Pos3d(0,0,0) r=geom.Vector3d(1,2,1) plBuz=teoria_bloques.computeDipPlane(alpha,beta,p) P=geom.HalfSpace3d(plBuz) plLim=P.getBoundaryPlane() s=plLim.getVector3dProjection(r) s=s.normalizado() sTeor=geom.Vector3d(0.5488,0.7818,0.2959) ratio1= (sTeor-s) ratio1=ratio1.getModulo() import os fname= os.path.basename(__file__) if abs(ratio1)<1e-4: print("test ",fname,": ok.") else: print("test ",fname,": ERROR.")
#Projection of a vector onto a plane. #Example 1.13 of the thesis «La teoría de bloque aplicada a la dinámica #de rocas» by Juan Carlos Ayes Zamudio import xc_base import geom import math import teoria_bloques alpha=math.radians(50) beta=math.radians(290) p=geom.Pos3d(0,0,0) r=geom.Vector3d(1,2,1) plBuz=teoria_bloques.computeDipPlane(alpha,beta,p) P=geom.HalfSpace3d(plBuz) plLim=P.getBoundaryPlane() s=plLim.getVector3dProjection(r) s=s.normalizado() sTeor=geom.Vector3d(0.5488,0.7818,0.2959) ratio1= (sTeor-s) ratio1=ratio1.getModulo() import os fname= os.path.basename(__file__) if abs(ratio1)<1e-4: print "test ",fname,": ok." else: print "test ",fname,": ERROR."
#de rocas» de Juan Carlos Ayes Zamudio from __future__ import print_function import xc_base import geom import math import teoria_bloques alpha1 = math.radians(20) beta1 = math.radians(280) alpha2 = math.radians(60) beta2 = math.radians(150) O = geom.Pos3d(0, 0, 0) P1 = teoria_bloques.computeDipPlane(alpha1, beta1, O) P2 = teoria_bloques.computeDipPlane(alpha2, beta2, O) n1 = P1.getNormal() n2 = P2.getNormal() I12 = n1.cross(n2) I12Teor = geom.Vector3d(0.7345, 0.5753, 0.2269) ratio1 = (I12 - I12Teor).getModulus() import os fname = os.path.basename(__file__) if math.fabs(ratio1) < 1e-4: print("test ", fname, ": ok.")