diff --git a/.kdev4/dune-microstructure.kdev4 b/.kdev4/dune-microstructure.kdev4 index 985d1fbfcc1af74c4c3b08b55f88bcc1a02b2054..c5a0742362e97feaa9e792bc470da6a0ac982c79 100644 --- a/.kdev4/dune-microstructure.kdev4 +++ b/.kdev4/dune-microstructure.kdev4 @@ -6,7 +6,7 @@ Build Directory Count=1 Current Build Directory Index-Host System=0 [CMake][CMake Build Directory 0] -Build Directory Path=/home/klaus/Desktop/DUNE2.8/dune-microstructure/build-cmake +Build Directory Path=/home/klaus/Desktop/DUNE/dune-microstructure/build-cmake Build Type=\n CMake Binary=/usr/bin/cmake CMake Executable=/usr/bin/cmake @@ -15,26 +15,5 @@ Extra Arguments= Install Directory= Runtime=Host System -[Launch] -Launch Configurations=Launch Configuration 0 - -[Launch][Launch Configuration 0] -Configured Launch Modes=execute -Configured Launchers=nativeAppLauncher -Name=dune-microstructure -Type=Native Application - -[Launch][Launch Configuration 0][Data] -Arguments= -Dependencies=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x00\x03\x00\x00\x00&\x00d\x00u\x00n\x00e\x00-\x00m\x00i\x00c\x00r\x00o\x00s\x00t\x00r\x00u\x00c\x00t\x00u\x00r\x00e\x00\x00\x00\x06\x00s\x00r\x00c\x00\x00\x00&\x00d\x00u\x00n\x00e\x00-\x00m\x00i\x00c\x00r\x00o\x00s\x00t\x00r\x00u\x00c\x00t\x00u\x00r\x00e) -Dependency Action=Build -EnvironmentGroup= -Executable=file:///home/klaus/Desktop/DUNE2.8/dune-microstructure -External Terminal=konsole --noclose --workdir %workdir -e %exe -Project Target=dune-microstructure,src,dune-microstructure -Use External Terminal=false -Working Directory=file:///home/klaus/Desktop/DUNE2.8/dune-microstructure/build-cmake/src -isExecutable=false - [Project] VersionControlSupport=kdevgit diff --git a/Matlab-Programs/BMatrix.txt b/Matlab-Programs/BMatrix.txt deleted file mode 100644 index f90d18cb534ed11ef80f6b57e5724c9d21532774..0000000000000000000000000000000000000000 --- a/Matlab-Programs/BMatrix.txt +++ /dev/null @@ -1,3 +0,0 @@ -1 1 -0.375507808365302675 -1 2 -0.59999999999997744 -1 3 6.94558662207737461e-10 diff --git a/Matlab-Programs/Minimization.mlx b/Matlab-Programs/Minimization.mlx index 196d9336e6866a510b2b3e76fa6ae315db54fbfd..a3d7d63b716b1cbba2b3632cb03663743f42df9a 100644 Binary files a/Matlab-Programs/Minimization.mlx and b/Matlab-Programs/Minimization.mlx differ diff --git a/Matlab-Programs/Minimization_Script.m b/Matlab-Programs/Minimization_Script.m index ac68cef9b79be992e699cc10418afb307e3b10cc..3a5c6a5ee84f6fada0bcfddbcd0d17fe16fc0513 100644 --- a/Matlab-Programs/Minimization_Script.m +++ b/Matlab-Programs/Minimization_Script.m @@ -1,6 +1,11 @@ clear all clc + +% status = system('mkdir mynew') +% command = './build-cmake/src/dune-microstructure ./inputs/cellsolver.parset'; +% system(['set PATH=' '/home/klaus/Desktop/DUNE/dune-microstructure' ';' command ]); + % --- Change PolynomialDisplayStyle ---- % sympref('PolynomialDisplayStyle','ascend'); % sympref('AbbreviateOutput',false); @@ -9,140 +14,233 @@ syms f_plus(v1,v2,q1,q2,q3,b1,b2,b3) assume( q1 > 0) assume( q2 > 0) assume( q3 > 0) -% assume(q3 == q1); -assume(q3 >= q1) -assume(q2 >= q3) - +assume( q3 >= q1) +assume( q2 >= q3) v = [v1; v2]; -%should be sqrt(2) instead of 2! +%should be sqrt(2) instead of 2 + +fprintf('Functions to be minimized') f_plus(v1,v2,q1,q2,q3,b1,b2,b3) = q1*v1^4 + q2*v2^4+2*q3*v1^2*v2^2-2*(q1*b1*v1^2+ q2*b2*v2^2+sqrt(2)*q3*b3*v1*v2); f_minus(v1,v2,q1,q2,q3,b1,b2,b3) = q1*v1^4 + q2*v2^4+2*q3*v1^2*v2^2+2*(q1*b1*v1^2+ q2*b2*v2^2+sqrt(2)*q3*b3*v1*v2); % ---- Fix parameters -% f_plus = subs(f_plus,b3,0) % set b3 -% f_plus = subs(f_plus,q3,q1) - -% f_plus = subs(f_plus,q1,40); -% f_plus = subs(f_plus,q3,63.9); -% f_plus = subs(f_plus,q2,34.9); -% f_plus = subs(f_plus,b1,4); -% f_plus = subs(f_plus,b2,2.4); -% f_plus = subs(f_plus,b3,2.4); - -% f_plus = subs(f_plus,q1,40); -% f_plus = subs(f_plus,q3,20); -% f_plus = subs(f_plus,q2,50); -% f_plus = subs(f_plus,b1,5); -% f_plus = subs(f_plus,b2,6); -% f_plus = subs(f_plus,b3,7); - -f_plus = subs(f_plus,q1,40); -f_plus = subs(f_plus,q3,63.9); -f_plus = subs(f_plus,q2,70); -rndm1 = randi([1 20],1,1); -rndm2 = randi([1 20],1,1); -rndm3 = randi([1 20],1,1); -f_plus = subs(f_plus,b1,rndm1); -f_plus = subs(f_plus,b2,rndm2); -f_plus = subs(f_plus,b3,rndm3); - - -f_minus = subs(f_minus,q1,40); -f_minus = subs(f_minus,q3,63.9); -f_minus = subs(f_minus,q2,70); -f_minus = subs(f_minus,b1,rndm1); -f_minus = subs(f_minus,b2,rndm2); -f_minus = subs(f_minus,b3,rndm3); - - -% Compute Gradient + +% 1. Import effective quantities from CellSolver-Code: +Qmat = spconvert(load('QMatrix.txt')); +Qmat = full(Qmat) + +Bmat = spconvert(load('BMatrix.txt')); +Bmat = full(Bmat) + + +% Substitute effective quantitites +f_plus = subs(f_plus,q1,Qmat(1,1)); +f_plus = subs(f_plus,q3,Qmat(3,3)); +f_plus = subs(f_plus,q2,Qmat(2,2)); +f_plus = subs(f_plus,b1,Bmat(1)); +f_plus = subs(f_plus,b2,Bmat(2)); +f_plus = subs(f_plus,b3,Bmat(3)); +% f_plus = subs(f_plus,b3,0); +% +f_minus = subs(f_minus,q1,Qmat(1,1)); +f_minus = subs(f_minus,q3,Qmat(3,3)); +f_minus = subs(f_minus,q2,Qmat(2,2)); +f_minus = subs(f_minus,b1,Bmat(1)); +f_minus = subs(f_minus,b2,Bmat(2)); +f_minus = subs(f_minus,b3,Bmat(3)); +% % f_minus = subs(f_minus,b3,0); + +% 2. Substitute specific values: + +%%%Compare with 'ClassifyMin-Code' +% % Compare with 'ClassifyMin-Code' +% mu_1 = 1; +% rho_1 = 1; +% % --- type 1 Situation: +% % beta = 2; +% % alpha = 2; +% % theta = 1/4; +% % --- type 2 Situation: +% % beta = 3.0714; +% % alpha = -20; +% % theta = 0.3; +% % --- type 3 Situation: +% % beta = 2.2857; +% % alpha = -20; +% % theta = 0.3; +% +% % interesting: +% alpha = 18.3673; +% beta = 8.57143; +% theta= 0.913265; +% +% % alpha = 2.85714; +% % beta = 7; +% % theta= 0.3; +% +% +% +% set_mu_gamma = 'q1'; +% % set_mu_gamma = 'q2'; +% print_output = false; +% +% q1i = mu_1.*(beta./(theta+(1-theta).*beta)) +% q2i = mu_1.*((1-theta)+theta.*beta) +% q3i = q1i +% % b1i = (mu_1*rho_1/4).*(beta./(theta+(1-theta).*beta)).*(1-theta.*(1+alpha)) +% % b2i = mu_1.*(rho_1/8).*(1-theta.*(1+beta.*alpha)) +% b3i = 0 +% +% %TEST (new) +% b1i = (3*rho_1/2).*beta.*(1-theta.*(1+alpha)); +% b2i = (3*rho_1/(4*((1-theta)+theta.*beta))).*(1-theta.*(1+beta.*alpha)); +% +% f_plus = subs(f_plus,q1,q1i); +% f_plus = subs(f_plus,q3,q3i); +% f_plus = subs(f_plus,q2,q2i); +% f_plus = subs(f_plus,b1,b1i); +% f_plus = subs(f_plus,b2,b2i); +% f_plus = subs(f_plus,b3,b3i) +% +% f_minus = subs(f_minus,q1,q1i); +% f_minus = subs(f_minus,q3,q3i); +% f_minus = subs(f_minus,q2,q2i); +% f_minus = subs(f_minus,b1,b1i); +% f_minus = subs(f_minus,b2,b2i); +% f_minus = subs(f_minus,b3,b3i) +% +% +% +% [A,angle,V] = classifyMIN(mu_1,rho_1,alpha,beta,theta,set_mu_gamma,print_output) + +% Substitute random values... +% rndm1 = randi([1 20],1,1); +% rndm2 = randi([1 20],1,1); +% rndm3 = randi([1 20],1,1); +% f_plus = subs(f_plus,b1,rndm1); +% f_plus = subs(f_plus,b2,rndm2); +% f_plus = subs(f_plus,b3,rndm3); + +% Compute the Gradients df_plusx = diff(f_plus,v1); df_plusy = diff(f_plus,v2); df_minusx = diff(f_minus,v1); df_minusy = diff(f_minus,v2); - +% Setup Equations Grad(f) = 0 eq1 = df_plusx == 0; eq2 = df_plusy == 0; -eqns = [eq1, eq2] +eqns = [eq1, eq2]; eq3 = df_minusx == 0; eq4 = df_minusy == 0; -eqns_minus = [eq3, eq4] +eqns_minus = [eq3, eq4]; + + +% Symbolically Solve Equations: +% More robust (works even for values b_3 ~ 1e-08 ): +S = solve(eqns,v1,v2,'MaxDegree' , 5); +S_minus = solve(eqns_minus,v1,v2,'MaxDegree' , 5); + +%Tests: +% S = solve(eqns,v1,v2,'MaxDegree' , 5, 'Real', true); +% S_minus = solve(eqns_minus,v1,v2,'MaxDegree' , 5, 'Real', true); -S = solve(eqns,v1,v2,'MaxDegree' , 5, 'Real', true); -S_minus = solve(eqns_minus,v1,v2,'MaxDegree' , 5, 'Real', true); -% S = solve(eqns,v1,v2,'MaxDegree' , 5); % S = solve(eqns,v1,v2,'MaxDegree' , 5, 'IgnoreAnalyticConstraints',true); % S = solve(eqns,v1,v2,'MaxDegree' , 5, 'IgnoreAnalyticConstraints',true, 'Real', true); % S = solve(eqns) - A = S.v1; B = S.v2; A_minus = S_minus.v1; B_minus = S_minus.v2; % A = simplify(A); % B = simplify(B) -% S_minus = solve(eqns_minus,v1,v2); -% S_minus.v1 -% S_minus.v2 - -%---------- TEST --------------------- -% r = subs(subs(df_plusx,v1,A(3)),v2,B(3)); -fprintf('Testing equation grad(f) = 0 with stationary points') -double(subs(subs(df_plusx,v1,A(1)),v2,B(1))) -double(subs(subs(df_plusx,v1,A(2)),v2,B(2))) -double(subs(subs(df_plusx,v1,A(3)),v2,B(3))) -% ------------------------------------ - - - - - -fprintf('print stationary points of f_plus:') -double(A) -double(B) -fprintf('print stationary points of f_minus:') -double(A_minus) -double(B_minus) +%---------- TEST if Grad(f) = 0 --------------------- +% fprintf('Testing equation grad(f) = 0 with stationary points') +% +% for i = 1:size(A,1) +% fprintf('Testing %d.point (f_plus): ',i ) +% [ double(subs(subs(df_plusx,v1,A(i)),v2,B(i))), double(subs(subs(df_plusy,v1,A(i)),v2,B(i))) ] +% end +% for i = 1:size(A_minus,1) +% fprintf('Testing %d.point (f_minus): ',i ) +% [double(subs(subs(df_minusx,v1,A_minus(i)),v2,B_minus(i))), double(subs(subs(df_minusy,v1,A_minus(i)),v2,B_minus(i)))] +% end +% ------------------------------------ -% determine global Minimizer from stationary points: -fprintf('function values at stationary points:') +fprintf('stationary points of f_plus:') +A = double(A); %safe symbolic values +B = double(B); +fprintf('stationary points of f_minus:') +A_minus = double(A_minus); +B_minus = double(B_minus); + +% Extract only Real-Solutions +fprintf('real stationary points of f_plus:') +tmp1 = A(imag(A)==0 & imag(B) == 0); +tmp2 = B(imag(A)==0 & imag(B) == 0); +A = tmp1; +B = tmp2; +% A(abs(imag(A)) <1e-3 & abs(imag(B)) <1e-3 ) +SP_Plus = [A,B] + +fprintf('real stationary points of f_minus:') +tmp1 = A_minus(imag(A_minus)==0 & imag(B_minus) == 0); +tmp2 = B_minus(imag(A_minus)==0 & imag(B_minus) == 0); +A_minus = tmp1; +B_minus = tmp2; +% A_minus(abs(imag(A_minus)) <1e-3 & abs(imag(B_minus)) <1e-3 ) +SP_Minus = [A_minus,B_minus] + +% Determine global Minimizer from stationary points: +fprintf('function values at stationary points (f_plus):') T = arrayfun(@(v1,v2) double(f_plus(v1,v2,q1,q2,q3,b1,b2,b3)),A,B,'UniformOutput', false) T = cell2mat(T); -Min_plus = min(T, [], 'all') +% Min_plus = min(T, [], 'all') +[Min_plus,MinIdx_plus] = min(T, [], 'all', 'linear'); - -% determine global Minimizer from stationary points: -fprintf('function values at stationary points:') +fprintf('function values at stationary points (f_minus):') T_minus = arrayfun(@(v1,v2) double(f_minus(v1,v2,q1,q2,q3,b1,b2,b3)),A_minus,B_minus,'UniformOutput', false) T_minus = cell2mat(T_minus); -Min_minus = min(T_minus, [], 'all') - -globalMinimizerValue = min(Min_plus,Min_minus) - -% Plot function +% Min_minus = min(T_minus, [], 'all') +[Min_minus,MinIdx_minus] = min(T_minus, [], 'all', 'linear'); + +[globalMinimizerValue,GlobalIdx] = min([Min_plus,Min_minus]); + +if GlobalIdx == 1 %Min_plus + GlobalMinimizer = SP_Plus(MinIdx_plus,:); + sign = 1.0; +elseif GlobalIdx == 2 %Min_minus + GlobalMinimizer = SP_Minus(MinIdx_minus,:); + sign = -1.0; +end + +fprintf('Global Minimizer:(%d,%d)', GlobalMinimizer(1),GlobalMinimizer(2) ) +fprintf('Global Minimizer Value : %d', globalMinimizerValue ) + +% Plot functions fsurf(@(x,y) f_plus(x,y,q1,q2,q3,b1,b2,b3)) hold on plot3(A,B,T,'g*') +%Plot GlobalMinimizer: +hold on +plot3(GlobalMinimizer(1),GlobalMinimizer(2),globalMinimizerValue, 'o', 'Color','c') % view(90,0) % view(2) - figure fsurf(@(x,y) f_minus(x,y,q1,q2,q3,b1,b2,b3)) hold on -plot3(A_minus,B_minus,T,'g*') - - - +plot3(A_minus,B_minus,T_minus,'g*') +hold on +plot3(GlobalMinimizer(1),GlobalMinimizer(2),globalMinimizerValue, 'o', 'Color','c') %Write to txt-File @@ -150,10 +248,113 @@ fileID = fopen('txt.txt','w'); fprintf(fileID,'%s' , latex(S.v1)); fclose(fileID); - - - - + + +%%%Compare with 'ClassifyMin-Code' +fprintf('----------------compare with ClassifyMIN----------------') +fprintf('Output Minimizer Matrix from symbolic Minimization') + +sign*GlobalMinimizer'*GlobalMinimizer %sign correct? should do this with symbolic Values! TODO +% GlobalMinimizer'*GlobalMinimizer + +%check with higher Precision: +% vpa(GlobalMinimizer'*GlobalMinimizer) + + +% % +% % %Output from Classify Min: +% % [A,angle,type,K] = classifyMIN(mu_1,rho_1,alpha,beta,theta,set_mu_gamma,print_output); +% % fprintf('Output Minimizer Matrix from ClassifyMIN') +% % +% % % [A(1) sign*sqrt(A(1)*A(2)) ; sign*sqrt(A(1)*A(2)) A(2)] %sign correct? +% % [A(1) sqrt(A(1)*A(2)) ; sqrt(A(1)*A(2)) A(2)] %sign correct? +% % +% % %check with higher Precision: +% % % vpa([A(1) sqrt(A(1)*A(2)) ; sqrt(A(1)*A(2)) A(2)]) +% % +% % +% % e = [sqrt(A(1)), sqrt(A(2))]; %TODO .. this might be complex?! +% % +% % norm = sqrt((A(1)+A(2))); +% % +% % e = e./norm; +% % +% % K*(e'*e) +% % +% % % e'*e +% % % K +% % +% % fprintf('angle: %d', angle) +% % fprintf('Type: %d', type) + + + +%% Compare with "Task2" +% fprintf('----------------compare with Task2----------------') +% +% B = [b1i b3i; b3i b2i]; +% x = 0:0.01:2*pi; +% +% y1 = arrayfun(@(alpha)compute_F(alpha,B,q1i,q2i,q3i),x,'UniformOutput', false); +% y1 = cell2mat(y1); +% +% +% figure +% plot(x,y1,'b') +% hold on +% +% fun = @(a) compute_F(a,B,q1i,q2i,q3i); +% [alphaMin,f] = fminunc(fun,0) +% [alphaMin,f] = fminunc(fun,3) % Different initial value +% plot(alphaMin,f,'*') +% +% %compute radius +% rMin = compute_r(alphaMin,B,q1i,q2i,q3i) +% +% %compute Minimizer: +% v_alpha = [cos(alphaMin);sin(alphaMin)]; +% +% +% +% G = rMin.*(v_alpha*v_alpha') + + +%%Determine Minimizer Type (in general case) +% % T = [GlobalMinimizer' e1'] +% % det(T) % also works? +% % +% % +% % % symbolically : +% % +% % if GlobalIdx == 1 %Min_plus +% % A_sym = S.v1; +% % B_sym = S.v2 +% % Index = MinIdx_plus; +% % elseif GlobalIdx == 2 %Min_minus +% % A_sym = S_minus.v1; +% % B_sym = S_minus.v2; +% % Index = MinIdx_minus; +% % end +% % +% % % Check Determinant symbolically?!?! +% % +% % g_sym = [A_sym(Index) B_sym(Index)] +% % G_sym = g_sym'*g_sym +% % +% % e1 = [1 0]; +% % e2 = [0 1]; +% % +% % % check alignment with e1 +% % % if .... +% % det([g_sym' e1']) +% % % ... bending in e1 direction +% % % check alignment with e2 +% % % if.. +% % det([g_sym' e2']) +% % double(det([g_sym' e2'])) +% % % bending in e2 direction +% % %Else +% % %.... diff --git a/Matlab-Programs/PhaseDiagrams.mlx b/Matlab-Programs/PhaseDiagrams.mlx index 442621dedd7e8bb67ba0b65d289dca9cf144ccff..7e27b8bfff5acf86e08c65c356092134a349980f 100644 Binary files a/Matlab-Programs/PhaseDiagrams.mlx and b/Matlab-Programs/PhaseDiagrams.mlx differ diff --git a/Matlab-Programs/QMatrix.txt b/Matlab-Programs/QMatrix.txt deleted file mode 100644 index 93c6dfab22b0fb116a35458cff4c09fae26d535d..0000000000000000000000000000000000000000 --- a/Matlab-Programs/QMatrix.txt +++ /dev/null @@ -1,9 +0,0 @@ -1 1 1.90510815738902228 -1 2 2.60132454317226442e-26 -1 3 -4.93750948541723109e-11 -2 1 -5.99537621698159769e-27 -2 2 2.08333333333341164 -2 3 -2.82386576263450663e-18 -3 1 -2.16574525495542866e-10 -3 2 -2.82386567902393238e-18 -3 3 1.92269764555762257 diff --git a/Matlab-Programs/classifyMIN.m b/Matlab-Programs/classifyMIN.m index 5ec2594fa8ef98c0db1ba4e9ec5b10a20f7d53c4..3f36a2c467886e782a7dcb1c90deff09a0e3b576 100755 --- a/Matlab-Programs/classifyMIN.m +++ b/Matlab-Programs/classifyMIN.m @@ -38,12 +38,12 @@ q3 = mu_gamma(b,t); % assert((q1 > 0 ) & (q2 > 0 ) & (q3 > 0), 'At least one of q1,q2 or q3 is not positive' ) -% Compute components of B_eff -b1 = (mu_1*rho_1/4).*(b./(t+(1-t).*b)).*(1-t.*(1+a)); -b2 = mu_1.*(rho_1/8).*(1-t.*(1+b.*a)); +% Compute components of B_eff (old) +% b1 = (mu_1*rho_1/4).*(b./(t+(1-t).*b)).*(1-t.*(1+a)); +% b2 = mu_1.*(rho_1/8).*(1-t.*(1+b.*a)); %TEST (new) -b1 = (3*rho_1/2).*b.*(1-t.*(1+a)); +b1 = (3*rho_1/2).*b.*(1-t.*(1+a)); b2 = (3*rho_1./(4.*((1-t)+t.*b))).*(1-t.*(1+b.*a)); @@ -169,20 +169,109 @@ end % Compute a3 from a1 % a2 -a3 = sqrt(2*a1*a2); +a3 = sqrt(2*a1*a2); % WRONG ? % compute angle between [sqrt(a1) , sqrt(a2)] and e1: % angle = atan2(sqrt(a2),sqrt(a1)); + +v = [sqrt(a1), sqrt(a2)]; +e1 = [1 0]; + if (type == 3 ) - angle = atan2(a2,a1); +% angle = atan2(a2,a1); +% angle = acos(v*e1/(sqrt(a1+a2))); else angle = 0; end % angle = atan2(norm(cross(a,b)), dot(a,b)) +% Try to compute angle of Matrices + +E1 = [1 0;0 0 ]; +% V = [a1 sqrt(a1*a2)/sqrt(2); sqrt(a1*a2)/sqrt(2) a2]; % This ?? NO + +V = [a1 sqrt(a1*a2); sqrt(a1*a2) a2]; % This! + +% CHECK +% U = trace(V'*E1)/(sqrt(trace(V'*V))*sqrt(trace(E1'*E1))) +% if abs(U) > 1 +% fprintf('value greater 1') +% end + + +% angle = atan2(sqrt(abs(a2)), sqrt(abs(a1))); % does this make sense? + + + +% angle = acos(trace(V'*E1)/(sqrt(trace(V'*V))*sqrt(trace(E1'*E1)))); %angle in radians +% angle = acos(trace(V'*E1)/(sqrt(trace(V'*V))*sqrt(trace(E1'*E1))))/pi * 180; % angle in degrees + + +% CHECK does case (0,-b) ever happen? Yes +% if (q2*b2^2 > q1*b1^2 && b2 < 0) +% fprintf('point lies on negative half of y-axis'); +% end + + + +% CHECK if Minimizer ever lies inside lambda ... YES +% if (a1 ~= 0 && a2 ~= 0) +% fprintf('minimizer lies inside lambda'); +% end + + +% Alternative atan2d(y,x): returns angle in degrees + + +% CHECK +e = [sqrt(a1), sqrt(a2)]; % Might be complex... +norm = sqrt(a1+a2); % Might be complex... +e = e./norm; +angle = atan2(e(2), e(1)); %TEST + +if (imag(e(1))~= 0 || imag(e(2))~=0) + fprintf('complex vector e'); +end + +% if (imag(norm)~=0) +% fprintf('complex norm'); % happens a lot .. +% end + + +% do it this way to avoid complex numbers: +e = [sqrt((a1/(a1+a2))), sqrt((a2/(a1+a2)))]; % always positive under sqrt here .. basically takes absolute value here +angle = atan2(e(2), e(1)); + + +if (imag(e(1))~= 0 || imag(e(2))~=0) + fprintf('complex vector e'); +end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TEST ------------------- +% the magnitude kappa of the vector does not matter for the angle .. +% In order to also get negative angles just use: +% atan2(a2,a1) + +% angle = atan2(a2,a1); %% FEHLER : muss [sqrt(a1) sqrt(a2)] betrachten.. +% angle = atan2(sqrt(a2),sqrt(a1)); % Inputs must be real... +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% angle2 = acos(e(1)/(sqrt(e(1)^2 + e(2)^2) )); +% if angle ~= angle2 +% interesting = 1; +% end + +% if (angle ~= 0 | angle ~= 3.1416) +% fprintf('angle not zero or pi.. plot type') +% type +% angle +% end %compute Kappa? % fprintf('Output Kappa:') diff --git a/Matlab-Programs/plotBeff.mlx b/Matlab-Programs/plotBeff.mlx index 32562683181f97166a2aeee4dc5c4071645268c0..1f5b30055f865b716cc709f858780d7a1c73aee5 100644 Binary files a/Matlab-Programs/plotBeff.mlx and b/Matlab-Programs/plotBeff.mlx differ diff --git a/Matlab-Programs/txt.txt b/Matlab-Programs/txt.txt deleted file mode 100644 index 9f084d89ea0d1caa1412409af116f686d900e2bb..0000000000000000000000000000000000000000 --- a/Matlab-Programs/txt.txt +++ /dev/null @@ -1 +0,0 @@ -\left(\begin{array}{c} \frac{2476481930565655\,\sqrt{2}\,\sqrt{\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}}}{3762230192769582}+\frac{6105574437709007800\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{3/2}}{3606097639769644347}-\frac{4441815091194097127\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{5/2}}{57697562236314309552}+\frac{79338599590461127\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{7/2}}{57697562236314309552}\\ 0\\ \frac{4441815091194097127\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{5/2}}{57697562236314309552}-\frac{6105574437709007800\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{3/2}}{3606097639769644347}-\frac{2476481930565655\,\sqrt{2}\,\sqrt{\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}}}{3762230192769582}-\frac{79338599590461127\,\sqrt{2}\,{\left(\frac{7236321}{513284}-\frac{90489364076808055029099312\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}+2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}-1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}-62387727378614246819519\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+90489364076808055029099312}{1084553381824303518724\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}}\,\sqrt{-\frac{411785266187684483115013018801761512433206452075313127077544\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-111520498974074812466515182290068769048594814721898561225904\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}+76887605058380361711501131344236721718108169343073828023\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+8950700537173950699474115226947926504\,\sqrt{805988923034412626385945162553118395785305}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-1538031129882303371646823345410352858641651541697995618320\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+16935646475695605713506954032500091913111194620506369490\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}+414174835296574096940990442846306573203402344369024\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{4/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-4017197408101699179435052119313143176424\,\sqrt{805988923034412626385945162553118395785305}-311199428002124515362917427982565568\,\sqrt{805988923034412626385945162553118395785305}\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}-23061614555946679442195315529794967892415503959611221162504872}{59163142998964508\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}}}}{2169106763648607037448\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}\,\sqrt{\frac{22622341019202013757274828}{271138345456075879681\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}}+2\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-\frac{3788817572159}{65865116164}}\,\sqrt{73011132837436776744575999668362869808\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{1/3}-50337392659754784557384084350662671\,{\left(\frac{2561945191461\,\sqrt{805988923034412626385945162553118395785305}}{1704844437736186534870734449}+\frac{1887270299271853205944656195093462576093}{218767343094745192341147515230129}\right)}^{2/3}+2630010951307735848\,\sqrt{805988923034412626385945162553118395785305}+15098162394174825647557249560747700608744}}\right)}^{7/2}}{57697562236314309552} \end{array}\right) \ No newline at end of file diff --git a/dune-microstructure.kdev4 b/dune-microstructure.kdev4 deleted file mode 100644 index deb877a1db8588964e5c8b3e77e12a0c7f64b598..0000000000000000000000000000000000000000 --- a/dune-microstructure.kdev4 +++ /dev/null @@ -1,4 +0,0 @@ -[Project] -CreatedFrom=CMakeLists.txt -Manager=KDevCMakeManager -Name=dune-microstructure diff --git a/dune/microstructure/matrix_operations.hh b/dune/microstructure/matrix_operations.hh index c67423e6369ea1a3dc19de60ec612ccdf74a284a..018e09a70312d4c32d1f88aa9d0b86216ca0b4d0 100644 --- a/dune/microstructure/matrix_operations.hh +++ b/dune/microstructure/matrix_operations.hh @@ -17,6 +17,19 @@ namespace MatrixOperations { Id[i][i]=1.0; return Id; } + + + static double norm(VectorRT v){ + return sqrt(pow(v[0],2) + pow(v[1],2) + pow(v[2],2)); + } + + static double norm(MatrixRT M){ + return sqrt( + pow(M[0][0],2) + pow(M[0][1],2) + pow(M[0][2],2) + + pow(M[1][0],2) + pow(M[1][1],2) + pow(M[1][2],2) + + pow(M[2][0],2) + pow(M[2][1],2) + pow(M[2][2],2)); + } + static MatrixRT sym (MatrixRT M) { // 1/2 (M^T + M) MatrixRT ret(0); @@ -80,6 +93,25 @@ namespace MatrixOperations { return t1 + t2; } + // --- Generalization: Define Quadratic QuadraticForm + + static double QuadraticForm(const double mu, const double lambda, const MatrixRT M){ + + auto tmp1 = sym(M); + double tmp2 = norm(tmp1); + return lambda*std::pow(trace(M),2) + 2*mu*pow( tmp2 ,2); +// return lambda*std::pow(trace(M),2) + 2*mu*pow( norm( sym(M) ),2); + } + + + static double generalizedDensity(const double mu, const double lambda, MatrixRT F, MatrixRT G){ + /// Write this whole File as a Class that uses lambda,mu as members ? + + // Define L via Polarization-Identity from QuadratifForm + // <LF,G> := (1/2)*(Q(F+G) - Q(F) - Q(G) ) + return (1.0/2.0)*(QuadraticForm(mu,lambda,F+G) - QuadraticForm(mu,lambda,F) - QuadraticForm(mu,lambda,G) ); + } + static MatrixRT matrixSqrt(MatrixRT M){ std::cout << "matrixSqrt not implemented!!!" << std::endl;//implement this return M; @@ -97,16 +129,7 @@ namespace MatrixOperations { return cos(phi)*x1 + sin(phi)*x2 > 0; } - static double norm(VectorRT v){ - return sqrt(pow(v[0],2) + pow(v[1],2) + pow(v[2],2)); - } - static double norm(MatrixRT M){ - return sqrt( - pow(M[0][0],2) + pow(M[0][1],2) + pow(M[0][2],2) - + pow(M[1][0],2) + pow(M[1][1],2) + pow(M[1][2],2) - + pow(M[2][0],2) + pow(M[2][1],2) + pow(M[2][2],2)); - } /* template<double phi> diff --git a/dune/microstructure/prestrain_material_geometry.hh b/dune/microstructure/prestrain_material_geometry.hh index 2ceacb0e89613a710395c1f3d85031e57f56f682..8e429bf0683bdfa3e3db803d3388329f78d2cd39 100644 --- a/dune/microstructure/prestrain_material_geometry.hh +++ b/dune/microstructure/prestrain_material_geometry.hh @@ -35,7 +35,7 @@ public: FuncScalar getMu(ParameterTree parameters){ - std::string imp = parameters.get<std::string>("material_implementation"); + std::string imp = parameters.get<std::string>("material_implementation", "analytical_Example"); //std::array<std::string,5> imps({"homogen_poisson" "bilayer_poisson" "chess_poisson" "3Dchess_poisson" "vertical_bilayer_poisson"}); double phi = M_PI*parameters.get<double>("material_angle", 0.0)/180; //TODO @@ -48,8 +48,7 @@ public: if (imp == "homogeneous"){ double mu = parameters.get<double>("mu", 10); - auto muTerm = [mu] (const Domain& z) { - return mu;}; + auto muTerm = [mu] (const Domain& z) {return mu;}; return muTerm; } @@ -59,7 +58,6 @@ public: double mu2 = beta*mu1; auto muTerm = [mu1, mu2, theta] (const Domain& z) { - // std::cout << "Analytical-MU is used" << std::endl; if (abs(z[0]) >= (theta/2.0)) return mu1; @@ -120,6 +118,8 @@ public: FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; // std::cout << "matrixMaterial-MU is used" << std::endl; + double output; + // determine if point is in upper/lower Layer if ( 0 <= s[2] && s[2] <= 1.0/2.0) // upper Layer { @@ -134,10 +134,13 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); // if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return mu2; //richtig so? Fiber hat tendenziell größeres mu? + output = mu2; +// return mu2; //richtig so? Fiber hat tendenziell größeres mu? else - return mu1; + output = mu1; +// return mu1; } + else {} } } else // lower Layer @@ -153,14 +156,17 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return mu2; //richtig so? Fiber hat tendenziell größeres mu? + output = mu2; +// return mu2; //richtig so? Fiber hat tendenziell größeres mu? else - return mu1; + output = mu1; +// return mu1; } + else{} } } - + return output; }; return muTerm; } @@ -186,6 +192,7 @@ public: // shift x to domain [0,1]^3 FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; // std::cout << "matrixMaterial-MU is used" << std::endl; + double output; // determine if point is in upper/lower Layer if ( 0 <= s[2] && s[2] <= 1.0/2.0) // upper Layer @@ -201,9 +208,11 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); // if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return mu2; //richtig so? Fiber hat tendenziell größeres mu? + output = mu2; +// return mu2; //richtig so? Fiber hat tendenziell größeres mu? else - return mu1; + output = mu1; +// return mu1; } } } @@ -220,14 +229,15 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return mu2; //richtig so? Fiber hat tendenziell größeres mu? + output = mu2; +// return mu2; //richtig so? Fiber hat tendenziell größeres mu? else - return mu1; + output = mu1; +// return mu1; } } - } - + return output; }; return muTerm; } @@ -237,10 +247,11 @@ public: double mu2 = beta*mu1; auto muTerm = [mu1, mu2, phi] (const Domain& z) { - if ( isInRotatedPlane(phi, z[dim-2], z[dim-1]) ) + if (isInRotatedPlane(phi, z[dim-2], z[dim-1])) return mu1; else - return mu2; }; + return mu2; + }; return muTerm; } @@ -363,7 +374,7 @@ public: FuncScalar getLambda(ParameterTree parameters) { - std::string imp = parameters.get<std::string>("material_implementation"); + std::string imp = parameters.get<std::string>("material_implementation", "analytical_Example"); //std::array<std::string,5> imps({"homogen_poisson" "bilayer_poisson" "chess_poisson" "3Dchess_poisson" "vertical_bilayer_poisson"}); //int i_imp = parameters.get<int>("impnumber"); //std::string imp = imps[i_imp]; @@ -437,6 +448,7 @@ public: int nF = parameters.get<int>("nF", 2); //number of Fibers in each Layer double rF = parameters.get<double>("rF", 0.5*(width/(2.0*nF)) ); //default: half of the max-fiber-radius mrF = (width/(2.0*nF)) + assert( (2*rF)*nF <= width && (height/4)+rF <= height); //check that fibers are not bigger than Domain @@ -449,6 +461,7 @@ public: // shift x to domain [0,1]^3 FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; // std::cout << "matrixMaterial-MU is used" << std::endl; + double output; // determine if point is in upper/lower Layer if ( 0 <= s[2] && s[2] <= 1.0/2.0) // upper Layer @@ -464,9 +477,11 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); // if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return lambda2; //richtig so? Fiber hat tendenziell größeres mu? + output = lambda2; +// return lambda2; //richtig so? Fiber hat tendenziell größeres mu? else - return lambda1; + output = lambda1; +// return lambda1; } } } @@ -483,14 +498,16 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return lambda2; //richtig so? Fiber hat tendenziell größeres mu? + output = lambda2; +// return lambda2; //richtig so? Fiber hat tendenziell größeres mu? else - return lambda1; + output = lambda1; +// return lambda1; } } } - + return output; }; return lambdaTerm; } @@ -503,8 +520,6 @@ public: int nF = parameters.get<int>("nF", 2); //number of Fibers in each Layer double rF = parameters.get<double>("rF", 0.5*(width/(2.0*nF)) ); //default: half of the max-fiber-radius mrF = (width/(2.0*nF)) - - assert( (2*rF)*nF <= width && (height/4)+rF <= height); //check that fibers are not bigger than Domain auto lambdaTerm = [lambda1,lambda2, theta,nF,rF,height,width] (const Domain& x) @@ -516,6 +531,7 @@ public: // shift x to domain [0,1]^3 FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; // std::cout << "matrixMaterial-MU is used" << std::endl; + double output; // determine if point is in upper/lower Layer if ( 0 <= s[2] && s[2] <= 1.0/2.0) // upper Layer @@ -531,9 +547,11 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); // if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return lambda2; //richtig so? Fiber hat tendenziell größeres mu? + output = lambda2; +// return lambda2; //richtig so? Fiber hat tendenziell größeres mu? else - return lambda1; + output = lambda1; +// return lambda1; } } } @@ -550,14 +568,15 @@ public: // printvector(std::cout, Fcenter, "Fcenter" , "--"); if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return lambda2; //richtig so? Fiber hat tendenziell größeres mu? + output = lambda2; +// return lambda2; //richtig so? Fiber hat tendenziell größeres mu? else - return lambda1; + output = lambda1; +// return lambda1; } } - } - + return output; }; return lambdaTerm; } @@ -708,7 +727,7 @@ public: - +// TODO add log here? @@ -758,7 +777,7 @@ public: { if (abs(x[0]) > (theta/2) && x[2] > 0) return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; - if (abs(x[0]) < (theta/2) && x[2] < 0) + else if (abs(x[0]) < (theta/2) && x[2] < 0) return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; else return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; @@ -818,6 +837,8 @@ public: double domainShift = 0.0; // shift x to domain [0,1]^3 FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; + + MatrixRT output; // determine if point is in upper/lower Layer if ((0.0 <= s[2] && s[2] <= 1.0/2.0)) // upperLayer @@ -830,9 +851,11 @@ public: FieldVector<double,2> Fcenter = { (1.0/(2.0*nF))+((1.0/double(nF))*i)-(1.0/2.0) , 1.0/4.0}; // if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; + output = MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; +// return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; + output = MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; +// return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; // return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; } } @@ -847,19 +870,22 @@ public: FieldVector<double,2> Fcenter = { (1.0/(2.0*nF))+((1.0/double(nF))*i)-(1.0/2.0) , -1.0/4.0}; if(sqrt(pow(s[0]-Fcenter[0],2)+pow(s[2]-Fcenter[1],2)) <= rF ) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; + output = MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; +// return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; + output = MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; +// return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; // return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; } } } - + return output; }; std::cout <<" Prestrain Type: matrix_material"<< std::endl; return B; } + else if (imp == "matrix_material_squares") // Matrix material with prestrained Fiber inclusions { int nF = parameters.get<int>("nF", 3); //number of Fibers in each Layer @@ -874,6 +900,8 @@ public: double domainShift = 0.0; // shift x to domain [0,1]^3 FieldVector<double,3> s = {x[0]+domainShift, x[1]+domainShift, x[2]+domainShift}; + + MatrixRT output; // determine if point is in upper/lower Layer if ((0.0 <= s[2] && s[2] <= 1.0/2.0)) // upperLayer @@ -886,9 +914,11 @@ public: FieldVector<double,2> Fcenter = { (1.0/(2.0*nF))+((1.0/double(nF))*i)-(1.0/2.0) , 1.0/4.0}; // if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; + output = MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; +// return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; + output = MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; +// return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; // return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; } } @@ -903,15 +933,17 @@ public: FieldVector<double,2> Fcenter = { (1.0/(2.0*nF))+((1.0/double(nF))*i)-(1.0/2.0) , -1.0/4.0}; if(std::max( abs(s[0]-Fcenter[0]), abs(s[2]-Fcenter[1]) ) <= rF ) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; + output = MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; +// return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; + output = MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; +// return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; // return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; } } } - + return output; }; std::cout <<" Prestrain Type: matrix_material"<< std::endl; return B; @@ -922,6 +954,8 @@ public: } // TODO ANISOTROPIC PRESSURE + + } diff --git a/dune/microstructure/prestrainimp.hh b/dune/microstructure/prestrainimp.hh index a3b68f0ac447e22c71d26f880cef65fbe58f5ed0..443de31641e6406e5702a52621ab49606ddb0d07 100644 --- a/dune/microstructure/prestrainimp.hh +++ b/dune/microstructure/prestrainimp.hh @@ -49,7 +49,7 @@ public: if (imp==1) { - Func2Tensor B1_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE + Func2Tensor B1_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE if (abs(x[0]) > (theta/2) && x[2] > 0) return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; if (abs(x[0]) < (theta/2) && x[2] < 0) @@ -63,7 +63,7 @@ public: } else if (imp==2) { - Func2Tensor B2_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE + Func2Tensor B2_ = [this] (const Domain& x) { // Bilayer with one rectangular Fiber & ISOTROPIC PRESSURE if (abs(x[0]) < (theta/2) && x[2] < 0 && x[2] > -(1.0/2.0) ) return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; diff --git a/inputs/cellsolver.parset b/inputs/cellsolver.parset index 42b9e10fe0b1121156c4be9fea1fd07994dd123f..464c4fe6628e5a0747096b1f8bacc8a515243e7c 100644 --- a/inputs/cellsolver.parset +++ b/inputs/cellsolver.parset @@ -2,8 +2,8 @@ #path for logfile #outputPath = "../../outputs/output.txt" -outputPath = "/home/klaus/Desktop/DUNE/dune-microstructure/outputs/output.txt" - +#outputPath = "/home/klaus/Desktop/DUNE/dune-microstructure/outputs/output.txt" +#outputPath = "/home/klaus/Desktop/DUNE/dune-microstructure/outputs" ############################################# # Debug Output @@ -31,7 +31,7 @@ cellDomain = 1 ######################################################################## #numLevels = 1 3 # computes all levels from first to second entry -numLevels = 2 2 # computes all levels from first to second entry +numLevels = 3 3 # computes all levels from first to second entry #numLevels = 1 6 @@ -55,7 +55,7 @@ numLevels = 2 2 # computes all levels from first to second entry #gamma=50.0 #gamma=1.0 -gamma=51.0 +gamma=0.01 ############################################# # Material parameters @@ -71,11 +71,14 @@ lambda1 = 0.0 #lambda1 = 20.0 #lambda1 = 5.0 +#### material_implementation("analytical_Example") ? + + material_implementation = "analytical_Example" -#material_implementation = "isotropic_bilayer" +#material_implementation ="isotropic_bilayer" -#material_implementation = "matrix_material_circles" -#material_implementation = "matrix_material_squares" +#material_implementation ="matrix_material_circles" +#material_implementation ="matrix_material_squares" #material_implementation = "circle_fiber" #TEST #material_implementation = "square_fiber" #TEST @@ -114,31 +117,14 @@ height = 1.0 # Prestrain Types: #1 Isotropic Pressure - Func2Tensor B1_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE - if (abs(x[0]) > (theta/2) && x[2] > 0) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; - if (abs(x[0]) < (theta/2) && x[2] < 0) - return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; - else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; - - }; - - - -#2 Isotropic Pressure - -Func2Tensor B2_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE - - if (abs(x[0]) < (theta/2) && x[2] < 0 && x[2] > -(1.0/2.0) ) - return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; - else - return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; - - - }; - - +# Func2Tensor B1_ = [this] (const Domain& x) { // ISOTROPIC PRESSURE +# if (abs(x[0]) > (theta/2) && x[2] > 0) +# return MatrixRT{{p1, 0.0 , 0.0}, {0.0, p1, 0.0}, {0.0, 0.0, p1}}; +# if (abs(x[0]) < (theta/2) && x[2] < 0) +# return MatrixRT{{p2, 0.0 , 0.0}, {0.0, p2, 0.0}, {0.0, 0.0, p2}}; +# else +# return MatrixRT{{0.0, 0.0 , 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; +# }; ############################################# @@ -151,8 +137,8 @@ set_IntegralZero = true #arbitraryLocalIndex = 7 #arbitraryElementNumber = 3 -arbitraryLocalIndex = 0 -arbitraryElementNumber = 0 +#arbitraryLocalIndex = 0 +#arbitraryElementNumber = 0 ############################################# diff --git a/outputs/debugLog.txt b/outputs/debugLog.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/outputs/output.txt b/outputs/output.txt index 5800dd61c928f56f450a2aab60b5de00506d71d7..9fb153f078416fb83b087c1ff1c7b9b159f12c34 100644 --- a/outputs/output.txt +++ b/outputs/output.txt @@ -1,57 +1,69 @@ -prestrain imp: 2 -rho1 = 1 -rho2 = 2 -alpha: 2 -gamma: 50 -Number of Elements in each direction: [15,15,15] +----- Input Parameters -----: +alpha: 5 +gamma: 0.01 +theta: 0.25 beta: 2 material parameters: mu1: 10 mu2: 20 lambda1: 0 -lambda2:0 -size of FiniteElementBasis: 10800 +lambda2: 0 +----------------------------: +Number of Elements in each direction: [8,8,8] +size of FiniteElementBasis: 1728 +Solver-type used: CG-Solver +---------- OUTPUT ---------- + -------------------- Corrector-Matrix M_1: --8.73326e-10 3.3873e-09 0 -3.3873e-09 -9.35729e-22 0 +-4.7875e-09 1.11201e-09 0 +1.11201e-09 -1.65324e-21 0 0 0 0 -------------------- Corrector-Matrix M_2: --1.20023e-25 -9.12937e-18 0 --9.12937e-18 1.96361e-17 0 +1.04621e-25 -1.08615e-20 0 +-1.08615e-20 -9.4846e-18 0 0 0 0 -------------------- Corrector-Matrix M_3: --1.352e-11 -3.15777e-12 0 --3.15777e-12 -3.55246e-18 0 +1.94872e-09 -9.19575e-10 0 +-9.19575e-10 2.93022e-20 0 0 0 0 + -------------------- +Effective Matrix Q: +2.08099 -5.09371e-24 2.86003e-10 +7.68785e-25 2.08333 -5.64259e-22 +-7.27118e-09 -5.65834e-22 2.08306 -Solution of Corrector problems: -Computed Matrix Q: -1.97452 3.06664e-22 1.73925e-11 --2.77279e-25 2.16049 1.34612e-18 --8.52488e-12 1.3461e-18 1.97454 - -Computed prestrain B_hat: --0.922995 -1.48056 -1.03062e-07 -Computed prestrain B_eff: --0.467452 -0.68529 -5.21975e-08 -computed q1: 1.97452 -computed q2: 2.16049 -computed q3: 1.97454 -computed b1: -0.467452 -computed b2: -0.68529 -computed b3: -5.21975e-08 -computed b1_hat: -0.922995 -computed b2_hat: -1.48056 -computed b3_hat: -1.03062e-07 - --- analytic solutions: --- -b1 : -0.882353 -b2 : -1.5 -b3 : 0 -q1 : 1.96078 -q2 : 2.16667 +--- Prestrain Output --- +B_hat: -1.24298 -1.25 2.78718e-08 +B_eff: -0.597302 -0.6 1.12953e-08 (Effective Prestrain) +------------------------ +q1: 2.08099 +q2: 2.08333 +q3: 2.08306 +effective b1: -0.597302 +effective b2: -0.6 +effective b3: 1.12953e-08 +b1_hat: -1.24298 +b2_hat: -1.25 +b3_hat: 2.78718e-08 +mu_gamma=2.08306 +----- print analytic solutions ----- +b1_hat_ana : -0.714286 +b2_hat_ana : -1.25 +b3_hat_ana : 0 +b1_eff_ana : -0.375 +b2_eff_ana : -0.6 +b3_eff_ana : 0 +q1_ana : 1.90476 +q2_ana : 2.08333 q3 should be between q1 and q2 + Levels | L2SymError | Order | L2SymNorm | L2SNorm_ana | L2Norm | +------------------------------------------------------------------------------------------ + 3 & 7.09613e-02 & 0.00000e+00 & 8.19784e-03 & 7.14286e-02 & 5.58336e-03 & + Levels | |q1_ana-q1| | |q2_ana-q2| | q3 | |b1_ana-b1| | |b2_ana-b2| | |b3_ana-b3| | +--------------------------------------------------------------------------------------------------------- + 3 & 1.76231e-01 & 8.88178e-15 & 2.08306e+00 & 2.22302e-01 & 2.44249e-15 & 1.12953e-08 & diff --git a/outputs/output20x20x20.txt b/outputs/output20x20x20.txt deleted file mode 100644 index 24404acda473b1d76a8abc20d6f9f503c038fa53..0000000000000000000000000000000000000000 --- a/outputs/output20x20x20.txt +++ /dev/null @@ -1,57 +0,0 @@ -prestrain imp: 2 -rho1 = 1 -rho2 = 2 -alpha: 2 -gamma: 50 -Number of Elements in each direction: [20,20,20] -beta: 2 -material parameters: -mu1: 10 -mu2: 20 -lambda1: 0 -lambda2:0 -size feBasis: 25200 -Corrector-Matrix M_1: -1.923e-10 8.39184e-10 0 -8.39184e-10 5.15403e-21 0 -0 0 0 - - -------------------- -Corrector-Matrix M_2: -2.39727e-23 -4.18818e-17 0 --4.18818e-17 4.08491e-18 0 -0 0 0 - - -------------------- -Corrector-Matrix M_3: -2.71269e-11 -2.81909e-12 0 --2.81909e-12 -1.6844e-17 0 -0 0 0 - - -Solution of Corrector problems: -Computed Matrix Q: -1.96078 3.32328e-21 2.38035e-11 -1.20763e-25 2.16667 1.18138e-18 -1.23313e-11 1.18136e-18 1.9608 - -Computed prestrain B_hat: --0.882353 -1.5 -7.19027e-08 -Computed prestrain B_eff: --0.45 -0.692308 -3.66673e-08 -computed q1: 1.96078 -computed q2: 2.16667 -computed q3: 1.9608 -computed b1: -0.45 -computed b2: -0.692308 -computed b3: -3.66673e-08 -computed b1_hat: -0.882353 -computed b2_hat: -1.5 -computed b3_hat: -7.19027e-08 - --- analytic solutions: --- -b1 : -0.882353 -b2 : -1.5 -b3 : 0 -q1 : 1.96078 -q2 : 2.16667 -q3 should be between q1 and q2 diff --git a/src/.dune-microstructure.cc.kate-swp b/src/.dune-microstructure.cc.kate-swp deleted file mode 100644 index ab134f664ac0f18ef9713f78c53389e793de0692..0000000000000000000000000000000000000000 Binary files a/src/.dune-microstructure.cc.kate-swp and /dev/null differ diff --git a/src/dune-microstructure.cc b/src/dune-microstructure.cc index 639d22e39a5e0dbb0d2a9a50fbcd452039c25c45..d820b453d1197dcf8689aebb83363d84b2296ab1 100644 --- a/src/dune-microstructure.cc +++ b/src/dune-microstructure.cc @@ -852,11 +852,17 @@ int main(int argc, char *argv[]) // Output setter // std::string outputPath = parameterSet.get("outputPath", "../../outputs/output.txt"); - std::string outputPath = parameterSet.get("outputPath", "/home/klaus/Desktop/DUNE/dune-microstructure/outputs/output.txt"); +// std::string outputPath = parameterSet.get("outputPath", "/home/klaus/Desktop/DUNE/dune-microstructure/outputs/output.txt"); + std::string outputPath = parameterSet.get("outputPath", "/home/klaus/Desktop/DUNE/dune-microstructure/outputs"); +// std::string MatlabPath = parameterSet.get("MatlabPath", "/home/klaus/Desktop/DUNE/dune-microstructure/Matlab-Programs"); // std::string outputPath = "/home/klaus/Desktop/DUNE/dune-microstructure/outputs/output.txt"; std::fstream log; - log.open(outputPath ,std::ios::out); + log.open(outputPath + "/output.txt" ,std::ios::out); + std::cout << "outputPath:" << outputPath << std::endl; + +// parameterSet.report(log); // short Alternativ + constexpr int dim = 3; constexpr int dimWorld = 3; @@ -897,15 +903,16 @@ int main(int argc, char *argv[]) auto prestrainImp = PrestrainImp(); //NEW auto B_Term = prestrainImp.getPrestrain(parameterSet); + log << "----- Input Parameters -----: " << std::endl; // log << "prestrain imp: " << prestraintype << "\nrho1 = " << rho1 << "\nrho2 = " << rho2 << std::endl; log << "alpha: " << alpha << std::endl; - log << "OUTPUT GAMMA-----: " << std::endl; log << "gamma: " << gamma << std::endl; log << "theta: " << theta << std::endl; log << "beta: " << beta << std::endl; log << "material parameters: " << std::endl; log << "mu1: " << mu1 << "\nmu2: " << mu2 << std::endl; - log << "lambda1: " << lambda1 <<"\nlambda2:" << lambda2 << std::endl; + log << "lambda1: " << lambda1 <<"\nlambda2: " << lambda2 << std::endl; + log << "----------------------------: " << std::endl; /////////////////////////////////// // Generate the grid @@ -930,7 +937,6 @@ int main(int argc, char *argv[]) /////////////////////////////////// // Create Data Storage /////////////////////////////////// - // Storage:: #1 level #2 L2SymError #3 L2SymErrorOrder #4 L2Norm(sym) #5 L2Norm(sym-analytic) #6 L2Norm(phi_1) std::vector<std::variant<std::string, size_t , double>> Storage_Error; @@ -1165,7 +1171,7 @@ int main(int argc, char *argv[]) solver.apply(x_2, load_alpha2, statistics); std::cout << "solve linear system for x_3.\n"; solver.apply(x_3, load_alpha3, statistics); - log << "Solver-type used: " <<"\n CG-Solver" << std::endl; + log << "Solver-type used: " <<" CG-Solver" << std::endl; } //////////////////////////////////////////////////////////////////////////////////// @@ -1196,7 +1202,7 @@ int main(int argc, char *argv[]) solver.apply(x_1, load_alpha1, statistics); solver.apply(x_2, load_alpha2, statistics); solver.apply(x_3, load_alpha3, statistics); - log << "Solver-type used: " <<"\n GMRES-Solver" << std::endl; + log << "Solver-type used: " <<" GMRES-Solver" << std::endl; } //////////////////////////////////////////////////////////////////////////////////// else if ( Solvertype == 3)// QR - SOLVER @@ -1212,7 +1218,7 @@ int main(int argc, char *argv[]) sPQR.apply(x_1, load_alpha1, statisticsQR); sPQR.apply(x_2, load_alpha2, statisticsQR); sPQR.apply(x_3, load_alpha3, statisticsQR); - log << "Solver-type used: " <<"\n QR-Solver" << std::endl; + log << "Solver-type used: " <<" QR-Solver" << std::endl; } // printvector(std::cout, load_alpha1BS, "load_alpha1 before SOLVER", "--" ); // printvector(std::cout, load_alpha1, "load_alpha1 AFTER SOLVER", "--" ); @@ -1259,12 +1265,14 @@ int main(int argc, char *argv[]) printmatrix(std::cout, M_1, "Corrector-Matrix M_1", "--"); printmatrix(std::cout, M_2, "Corrector-Matrix M_2", "--"); printmatrix(std::cout, M_3, "Corrector-Matrix M_3", "--"); + log << "---------- OUTPUT ----------" << std::endl; + log << " --------------------" << std::endl; log << "Corrector-Matrix M_1: \n" << M_1 << std::endl; log << " --------------------" << std::endl; log << "Corrector-Matrix M_2: \n" << M_2 << std::endl; log << " --------------------" << std::endl; log << "Corrector-Matrix M_3: \n" << M_3 << std::endl; - + log << " --------------------" << std::endl; //////////////////////////////////////////////////////////////////////////// // Substract Integral-mean @@ -1305,9 +1313,10 @@ int main(int argc, char *argv[]) ///////////////////////////////////////////////////////// // Write Solution (Corrector Coefficients) in Logs ///////////////////////////////////////////////////////// - log << "\nSolution of Corrector problems:\n"; +// log << "\nSolution of Corrector problems:\n"; if(write_corrector_phi1) { + log << "\nSolution of Corrector problems:\n"; log << "\n Corrector_phi1:\n"; log << x_1 << std::endl; } @@ -1377,7 +1386,7 @@ int main(int argc, char *argv[]) } } printmatrix(std::cout, Q, "Matrix Q", "--"); - log << "Computed Matrix Q: " << std::endl; + log << "Effective Matrix Q: " << std::endl; log << Q << std::endl; // compute B_hat @@ -1392,8 +1401,10 @@ int main(int argc, char *argv[]) std::cout << "check this Contribution: " << (coeffContainer[a]*tmp2) << std::endl; //see orthotropic.tex } } - log << "Computed prestrain B_hat: " << std::endl; - log << B_hat << std::endl; + +// log << B_hat << std::endl; +// log << "Prestrain B_hat: " << std::endl; +// log << B_hat << std::endl; std::cout << "check this Contribution: " << (coeffContainer[2]*tmp2) << std::endl; //see orthotropic.tex @@ -1402,17 +1413,23 @@ int main(int argc, char *argv[]) ////////////////////////////// FieldVector<double, 3> Beff; Q.solve(Beff,B_hat); - log << "Computed prestrain B_eff: " << std::endl; - log << Beff << std::endl; + + log << "--- Prestrain Output --- " << std::endl; + log << "B_hat: " << B_hat << std::endl; + log << "B_eff: " << Beff << " (Effective Prestrain)" << std::endl; + log << "------------------------ " << std::endl; +// log << Beff << std::endl; +// log << "Effective Prestrain B_eff: " << std::endl; +// log << Beff << std::endl; // printvector(std::cout, Beff, "Beff", "--"); - auto q1_c = Q[0][0]; - auto q2_c = Q[1][1]; - auto q3_c = Q[2][2]; + auto q1 = Q[0][0]; + auto q2 = Q[1][1]; + auto q3 = Q[2][2]; - std::cout<< "q1_c: " << q1_c << std::endl; - std::cout<< "q2_c: " << q2_c << std::endl; - std::cout<< "q3_c: " << q3_c << std::endl; + std::cout<< "q1 : " << q1 << std::endl; + std::cout<< "q2 : " << q2 << std::endl; + std::cout<< "q3 : " << q3 << std::endl; // std::cout<< "b1hat_c: " << B_hat[0] << std::endl; // std::cout<< "b2hat_c: " << B_hat[1] << std::endl; // std::cout<< "b3hat_c: " << B_hat[2] << std::endl; @@ -1425,33 +1442,33 @@ int main(int argc, char *argv[]) std::cout << "Theta: " << theta << std::endl; std::cout << "Gamma: " << gamma << std::endl; std::cout << "Number of Elements in each direction: " << nElements << std::endl; - log << "computed q1: " << q1_c << std::endl; - log << "computed q2: " << q2_c << std::endl; - log << "computed q3: " << q3_c << std::endl; - log << "mu_gamma=" << q3_c << std::endl; // added for Python-Script - log << "computed b1: " << Beff[0] << std::endl; - log << "computed b2: " << Beff[1] << std::endl; - log << "computed b3: " << Beff[2] << std::endl; - log << "computed b1_hat: " << B_hat[0] << std::endl; - log << "computed b2_hat: " << B_hat[1] << std::endl; - log << "computed b3_hat: " << B_hat[2] << std::endl; + log << "q1: " << q1 << std::endl; + log << "q2: " << q2 << std::endl; + log << "q3: " << q3 << std::endl; + log << "effective b1: " << Beff[0] << std::endl; + log << "effective b2: " << Beff[1] << std::endl; + log << "effective b3: " << Beff[2] << std::endl; + log << "b1_hat: " << B_hat[0] << std::endl; + log << "b2_hat: " << B_hat[1] << std::endl; + log << "b3_hat: " << B_hat[2] << std::endl; + log << "mu_gamma=" << q3 << std::endl; // added for Python-Script ////////////////////////////////////////////////////////////// // Define Analytic Solutions ////////////////////////////////////////////////////////////// // double b1 = (mu1*p1/4)*(beta/(theta+(1-theta)*beta))*(1-theta*(1+alpha)); // double b2 = (mu1*p1/8)*(1-theta*(1+beta*alpha)); - double b1_hat = (-(theta/4.0)*mu1*mu2)/(theta*mu1+(1.0-theta)*mu2); - double b2_hat = -(theta/4.0)*mu2; - double b3_hat = 0.0; + double b1_hat_ana = (-(theta/4.0)*mu1*mu2)/(theta*mu1+(1.0-theta)*mu2); + double b2_hat_ana = -(theta/4.0)*mu2; + double b3_hat_ana = 0.0; - double b1_eff = (-3.0/2.0)*theta; - double b2_eff = (-3.0/2.0)*(theta*mu2)/(mu1*(1-theta)+mu2*theta); - double b3_eff = 0.0; + double b1_eff_ana = (-3.0/2.0)*theta; + double b2_eff_ana = (-3.0/2.0)*(theta*mu2)/(mu1*(1-theta)+mu2*theta); + double b3_eff_ana = 0.0; - double q1 = ((mu1*mu2)/6.0)/(theta*mu1+ (1.0- theta)*mu2); - double q2 = ((1.0-theta)*mu1+theta*mu2)/6.0; + double q1_ana = ((mu1*mu2)/6.0)/(theta*mu1+ (1.0- theta)*mu2); + double q2_ana = ((1.0-theta)*mu1+theta*mu2)/6.0; @@ -1462,34 +1479,34 @@ int main(int argc, char *argv[]) std::cout << ((3.0*p1)/2.0)*beta*(1-(theta*(1+alpha))) << std::endl; // TODO ERROR in paper ?? - std::cout << " --- print analytic solutions --- " << std::endl; - std::cout << "b1_hat : " << b1_hat << std::endl; - std::cout << "b2_hat : " << b2_hat << std::endl; - std::cout << "b3_hat : " << b3_hat << std::endl; - std::cout << "b1_eff : " << b1_eff << std::endl; - std::cout << "b2_eff : " << b2_eff << std::endl; - std::cout << "b3_eff : " << b3_eff << std::endl; + std::cout << "----- print analytic solutions -----" << std::endl; + std::cout << "b1_hat_ana : " << b1_hat_ana << std::endl; + std::cout << "b2_hat_ana : " << b2_hat_ana << std::endl; + std::cout << "b3_hat_ana : " << b3_hat_ana << std::endl; + std::cout << "b1_eff_ana : " << b1_eff_ana << std::endl; + std::cout << "b2_eff_ana : " << b2_eff_ana << std::endl; + std::cout << "b3_eff_ana : " << b3_eff_ana << std::endl; - std::cout << "q1 : " << q1 << std::endl; - std::cout << "q2 : " << q2 << std::endl; + std::cout << "q1_ana : " << q1_ana << std::endl; + std::cout << "q2_ana : " << q2_ana << std::endl; std::cout << "q3 should be between q1 and q2" << std::endl; - log << " --- analytic solutions: --- " << std::endl; - log << "b1_hat : " << b1_hat << std::endl; - log << "b2_hat : " << b2_hat << std::endl; - log << "b3_hat : " << b3_hat << std::endl; - log << "b1_eff : " << b1_eff << std::endl; - log << "b2_eff : " << b2_eff << std::endl; - log << "b3_eff : " << b3_eff << std::endl; - log << "q1 : " << q1 << std::endl; - log << "q2 : " << q2 << std::endl; + log << "----- print analytic solutions -----" << std::endl; + log << "b1_hat_ana : " << b1_hat_ana << std::endl; + log << "b2_hat_ana : " << b2_hat_ana << std::endl; + log << "b3_hat_ana : " << b3_hat_ana << std::endl; + log << "b1_eff_ana : " << b1_eff_ana << std::endl; + log << "b2_eff_ana : " << b2_eff_ana << std::endl; + log << "b3_eff_ana : " << b3_eff_ana << std::endl; + log << "q1_ana : " << q1_ana << std::endl; + log << "q2_ana : " << q2_ana << std::endl; log << "q3 should be between q1 and q2" << std::endl; - Storage_Quantities.push_back(std::abs(q1 - q1_c)); - Storage_Quantities.push_back(std::abs(q2 - q2_c)); - Storage_Quantities.push_back( q3_c ); - Storage_Quantities.push_back(std::abs(b1_eff - Beff[0])); - Storage_Quantities.push_back(std::abs(b2_eff - Beff[1])); - Storage_Quantities.push_back(std::abs(b3_eff - Beff[2])); + Storage_Quantities.push_back(std::abs(q1_ana - q1)); + Storage_Quantities.push_back(std::abs(q2_ana - q2)); + Storage_Quantities.push_back( q3 ); + Storage_Quantities.push_back(std::abs(b1_eff_ana - Beff[0])); + Storage_Quantities.push_back(std::abs(b2_eff_ana - Beff[1])); + Storage_Quantities.push_back(std::abs(b3_eff_ana - Beff[2])); auto symPhi_1_analytic = [mu1, mu2, theta, muTerm] (const Domain& x) { return MatrixRT{{ (((mu1*mu2)/((theta*mu1 +(1-theta)*mu2)*muTerm(x))) - 1)*x[2] , 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}; @@ -1501,31 +1518,31 @@ int main(int argc, char *argv[]) if(write_L2Error) { - std::cout << " ----- L2ErrorSym ----" << std::endl; +// std::cout << " ----- L2ErrorSym ----" << std::endl; auto L2SymError = computeL2SymError(Basis_CE,phi_1,gamma,symPhi_1_analytic); - std::cout << "L2SymError: " << L2SymError << std::endl; - std::cout << " -----------------" << std::endl; +// std::cout << "L2SymError: " << L2SymError << std::endl; +// std::cout << " -----------------" << std::endl; - std::cout << " ----- L2NORMSym ----" << std::endl; +// std::cout << " ----- L2NORMSym ----" << std::endl; auto L2Norm_Symphi = computeL2SymError(Basis_CE,phi_1,gamma,zeroFunction); - std::cout << "L2-Norm(Symphi_1): " << L2Norm_Symphi << std::endl; +// std::cout << "L2-Norm(Symphi_1): " << L2Norm_Symphi << std::endl; VectorCT zeroVec; zeroVec.resize(Basis_CE.size()); zeroVec = 0; auto L2Norm_SymAnalytic = computeL2SymError(Basis_CE,zeroVec ,gamma, symPhi_1_analytic); - std::cout << "L2-Norm(SymAnalytic): " << L2Norm_SymAnalytic << std::endl; - std::cout << " -----------------" << std::endl; +// std::cout << "L2-Norm(SymAnalytic): " << L2Norm_SymAnalytic << std::endl; +// std::cout << " -----------------" << std::endl; - std::cout << " ----- L2NORM ----" << std::endl; +// std::cout << " ----- L2NORM ----" << std::endl; auto L2Norm = computeL2Norm(Basis_CE,phi_1); - std::cout << "L2Norm(phi_1): " << L2Norm << std::endl; - std::cout << " -----------------" << std::endl; +// std::cout << "L2Norm(phi_1): " << L2Norm << std::endl; +// std::cout << " -----------------" << std::endl; - log << "L2-Error (symmetric Gradient phi_1):" << L2SymError << std::endl; - log << "L2-Norm(Symphi_1): " << L2Norm_Symphi<< std::endl; - log << "L2-Norm(SymAnalytic): " << L2Norm_SymAnalytic << std::endl; +// log << "L2-Error (symmetric Gradient phi_1):" << L2SymError << std::endl; +// log << "L2-Norm(Symphi_1): " << L2Norm_Symphi<< std::endl; +// log << "L2-Norm(SymAnalytic): " << L2Norm_SymAnalytic << std::endl; double EOC = 0.0; Storage_Error.push_back(L2SymError); @@ -1553,17 +1570,14 @@ int main(int argc, char *argv[]) ////////////////////////////////////////////////////////////////////////////////////////////// // Write Data to Matlab / Optimization-Code ////////////////////////////////////////////////////////////////////////////////////////////// - -// writeMatrixToMatlab(Q, "matlab.txt"); - writeMatrixToMatlab(Q, "../../Matlab-Programs/QMatrix.txt"); - +// writeMatrixToMatlab(Q, "../../Matlab-Programs/QMatrix.txt"); + writeMatrixToMatlab(Q, outputPath + "/QMatrix.txt"); // write effective Prestrain in Matrix for Output - FieldMatrix<double,1,3> BeffMat; - BeffMat[0] = Beff; - writeMatrixToMatlab(BeffMat, "../../Matlab-Programs/BMatrix.txt"); +// writeMatrixToMatlab(BeffMat, "../../Matlab-Programs/BMatrix.txt"); + writeMatrixToMatlab(BeffMat, outputPath + "/BMatrix.txt"); ////////////////////////////////////////////////////////////////////////////////////////////// // Write result to VTK file @@ -1581,7 +1595,8 @@ int main(int argc, char *argv[]) vtkWriter.addVertexData( correctorFunction_3, VTK::FieldInfo("Corrector phi_3 level"+ std::to_string(level) , VTK::FieldInfo::Type::vector, dim)); - vtkWriter.write( VTKOutputName + "-level"+ std::to_string(level)); +// vtkWriter.write( VTKOutputName + "-level"+ std::to_string(level)); + vtkWriter.pwrite( VTKOutputName + "-level"+ std::to_string(level), outputPath, ""); std::cout << "wrote data to file: " + VTKOutputName + "-level" + std::to_string(level) << std::endl; @@ -1693,20 +1708,20 @@ int main(int argc, char *argv[]) //////////////// OUTPUT QUANTITIES TABLE ////////////// std::cout << center("Levels ",tableWidth) << " | " - << center("|q1-q1_c|",tableWidth) << " | " - << center("|q2-q2_c|",tableWidth) << " | " + << center("|q1_ana-q1|",tableWidth) << " | " + << center("|q2_ana-q2|",tableWidth) << " | " << center(" q3_c",tableWidth) << " | " - << center("|b1-b1_c|",tableWidth) << " | " - << center("|b2-b2_c|",tableWidth) << " | " - << center("|b3-b3_c|",tableWidth) << " | " << "\n"; + << center("|b1_ana-b1|",tableWidth) << " | " + << center("|b2_ana-b2|",tableWidth) << " | " + << center("|b3_ana-b3|",tableWidth) << " | " << "\n"; std::cout << std::string(tableWidth*7 + 3*7, '-') << "\n"; log << center("Levels ",tableWidth) << " | " - << center("|q1-q1_c|",tableWidth) << " | " - << center("|q2-q2_c|",tableWidth) << " | " - << center(" q3_c",tableWidth) << " | " - << center("|b1-b1_c|",tableWidth) << " | " - << center("|b2-b2_c|",tableWidth) << " | " - << center("|b3-b3_c|",tableWidth) << " | " << "\n"; + << center("|q1_ana-q1|",tableWidth) << " | " + << center("|q2_ana-q2|",tableWidth) << " | " + << center(" q3",tableWidth) << " | " + << center("|b1_ana-b1|",tableWidth) << " | " + << center("|b2_ana-b2|",tableWidth) << " | " + << center("|b3_ana-b3|",tableWidth) << " | " << "\n"; log << std::string(tableWidth*7 + 3*7, '-') << "\n"; int StorageCount2 = 0; @@ -1721,8 +1736,6 @@ int main(int argc, char *argv[]) log << std::endl; } } - log << "OUTPUT GAMMA-----: " << std::endl; - log << "gamma: " << gamma << std::endl; log.close(); }