Näherungslösung GHA 2
This commit is contained in:
@@ -4,9 +4,13 @@ import runge_kutta as rk
|
||||
import GHA_triaxial.numeric_examples_karney as ne_karney
|
||||
import GHA_triaxial.numeric_examples_panou as ne_panou
|
||||
import winkelumrechnungen as wu
|
||||
from typing import Tuple
|
||||
from numpy.typing import NDArray
|
||||
|
||||
# Panou 2013
|
||||
def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, epsilon=10**-12, iter_max=30):
|
||||
def gha2_num(ell: EllipsoidTriaxial, beta_1: float, lamb_1: float, beta_2: float, lamb_2: float,
|
||||
n: int = 16000, epsilon: float = 10**-12, iter_max: int = 30, all_points: bool = False
|
||||
) -> Tuple[float, float, float]| Tuple[float, float, float, NDArray, NDArray]:
|
||||
"""
|
||||
|
||||
:param ell: triaxiales Ellipsoid
|
||||
@@ -17,6 +21,7 @@ def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, ep
|
||||
:param n: Anzahl Schritte
|
||||
:param epsilon:
|
||||
:param iter_max: Maximale Anzhal Iterationen
|
||||
:param all_points:
|
||||
:return:
|
||||
"""
|
||||
|
||||
@@ -25,7 +30,6 @@ def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, ep
|
||||
def arccot(x):
|
||||
return np.arctan2(1.0, x)
|
||||
|
||||
|
||||
def BETA_LAMBDA(beta, lamb):
|
||||
|
||||
BETA = (ell.ay**2 * np.sin(beta)**2 + ell.b**2 * np.cos(beta)**2) / (ell.Ex**2 - ell.Ey**2 * np.sin(beta)**2)
|
||||
@@ -60,7 +64,6 @@ def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, ep
|
||||
G_beta_lamb = - LAMBDA_ * ell.Ey**2 * np.sin(2*beta)
|
||||
G_lamb_lamb = LAMBDA__ * (ell.Ey**2 * np.cos(beta)**2 + ell.Ee**2 * np.sin(lamb)**2) + 2 * LAMBDA_ * ell.Ee**2 * np.sin(2*lamb) + 2 * LAMBDA * ell.Ee**2 * np.cos(2*lamb)
|
||||
|
||||
|
||||
return (BETA, LAMBDA, E, G,
|
||||
BETA_, LAMBDA_, BETA__, LAMBDA__,
|
||||
E_beta, E_lamb, G_beta, G_lamb,
|
||||
@@ -244,15 +247,21 @@ def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, ep
|
||||
+ (ell.Ee**2 / ell.Ex**2) * np.cos(lamb0) ** 2 * np.cos(alpha_1) ** 2
|
||||
)
|
||||
|
||||
return alpha_1, alpha_2, s, beta_arr, lamb_arr
|
||||
if all_points:
|
||||
return alpha_1, alpha_2, s, beta_arr, lamb_arr
|
||||
else:
|
||||
return alpha_1, alpha_2, s
|
||||
|
||||
if lamb_1 == lamb_2:
|
||||
else: # lamb_1 == lamb_2
|
||||
|
||||
N = n
|
||||
dbeta = beta_2 - beta_1
|
||||
|
||||
if abs(dbeta) < 10**-15:
|
||||
return 0, 0, 0, np.array([]), np.array([])
|
||||
if all_points:
|
||||
return 0, 0, 0, np.array([]), np.array([])
|
||||
else:
|
||||
return 0, 0, 0
|
||||
|
||||
lamb_0 = 0
|
||||
|
||||
@@ -369,7 +378,10 @@ def gha2_num(ell: EllipsoidTriaxial, beta_1, lamb_1, beta_2, lamb_2, n=16000, ep
|
||||
else:
|
||||
s = np.trapz(integrand, dx=h)
|
||||
|
||||
return alpha_1, alpha_2, s, beta_arr, lamb_arr
|
||||
if all_points:
|
||||
return alpha_1, alpha_2, s, beta_arr, lamb_arr
|
||||
else:
|
||||
return alpha_1, alpha_2, s
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -390,7 +402,6 @@ if __name__ == "__main__":
|
||||
# a1, a2, s = gha2_num(ell, beta1, lamb1, beta2, lamb2, n=5000)
|
||||
# print(s)
|
||||
|
||||
|
||||
# ell = EllipsoidTriaxial.init_name("BursaSima1980round")
|
||||
# diffs_panou = []
|
||||
# examples_panou = ne_panou.get_random_examples(4)
|
||||
@@ -421,8 +432,4 @@ if __name__ == "__main__":
|
||||
# diffs_karney = np.array(diffs_karney)
|
||||
# print(diffs_karney)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user