80 t19 = t13*t14*alpha*(1.0-rho)/2.0;
84 t25 = cos(-t19+t22+0.3141592653589793E1/4.0);
88 return(t1*t2*t6*t8*Omega*t11*t21*t26+4.0*alpha*t2*t6*t14*Omega*t10*t20*t25*
89 (N-1.0)*(Omega*t10*t20*t39/2.0-Omega*t43));
119 t18 = 0.3141592653589793E1/4.0;
123 t31 = sin(2.0*t5+t18);
125 return(t1*(0.3141592653589793E1*t2/N*t7/2.0+t11*0.3141592653589793E1*t13*
126 Omega*t16*t6*t20)+0.3141592653589793E1*t1*t2*t11*(t27*(t28*t31/4.0+t33*t28/4.0
127 )-2.0*t28*t16*t6*t20)/2.0);
134 double P_sarah(
double rho,
double zeta,
double t)
150 t19 = cos(t8+0.3141592653589793E1/4.0);
151 return(epsilon*(t1/N*t4*t6*t9-t12*Omega*(1.0+A)*t4*t6*t19/alpha));
173 t10 = pow(1.0+A,2.0);
178 return(-alpha*t1*0.3141592653589793E1*t4*t6*t5*t10*(-1.0+2.0*t12*t13-2.0*
200 t2 = 0.3141592653589793E1*t1;
210 return(4.0*t2*(N-1.0)*t4*t8-alpha*t4*0.3141592653589793E1*t14*t15*t1*t19*(
211 -1.0+2.0*t20*t7-2.0*t8)/8.0+t4*t18*t2*(-10.0*A*t8-A+8.0*A*N*t8+22.0*t8-1.0-24.0
218 double U_sarah(
double rho,
double zeta,
double t)
251 t4 = pow(rho,1.0*t3);
261 t23 = 0.3141592653589793E1/4.0;
266 t46 = t41*t19*alpha*t43/2.0;
271 t57 = sin(-t46+t8+t23);
277 return(epsilon*(t1*Omega*t4*t6*t9+t12*Omega*t4*t14*t9+(t1*N*t19*t22*t6*t25+
278 t12*N*t19*t22*t14*t25)*t35)-epsilon*t12*(t14*(Omega*t21*t47*t49-t52)+t14*(t55*
279 t21*t59-t62*t64*t9)*t35)+epsilon*t1*(t52*t6+t6*(-t55*t21*t59-t62*t43*t3*t9)*t35
280 )-(-t12*(-Omega*t14*t87-t89*t19*t21*t14*t25)+t1*(Omega*t6*t87+t89*t6*t19*t21*
287 double V_sarah(
double rho,
double zeta,
double t)
320 t4 = pow(rho,1.0*t3);
330 t23 = 0.3141592653589793E1/4.0;
335 t46 = t41*t19*alpha*t43/2.0;
340 t57 = sin(-t46+t8+t23);
346 return(epsilon*(t1*Omega*t4*t6*t9-t12*Omega*t4*t14*t9+(t1*N*t19*t22*t6*t25-
347 t12*N*t19*t22*t14*t25)*t35)+epsilon*t12*(t14*(Omega*t21*t47*t49-t52)+t14*(t55*
348 t21*t59-t62*t64*t9)*t35)+epsilon*t1*(t52*t6+t6*(-t55*t21*t59-t62*t43*t3*t9)*t35
349 )-(t12*(-Omega*t14*t87-t89*t19*t21*t14*t25)+t1*(Omega*t6*t87+t89*t6*t19*t21*t25
356 double X_sarah(
double rho,
double zeta,
double t)
371 return(rho*(t1+epsilon*t3*(t6*t1-A*t8*t10)));
377 double Y_sarah(
double rho,
double zeta,
double t)
392 return(rho*(t1+epsilon*t3*(t6*t1+A*t8*t10)));
400 const Vector<double>& unknowns,
401 Vector<double>& residuals)
410 double rho=unknowns[0];
411 double zeta=unknowns[1];
414 residuals[0]=
X_sarah(rho,zeta,t)-xx;
415 residuals[1]=
Y_sarah(rho,zeta,t)-yy;
423 const Vector<double>& x,
424 Vector<double>& soln)
433 Vector<double> params(3);
440 Vector<double> unknowns(2);
443 double rho=sqrt(x[0]*x[0]+x[1]*x[1]);
444 double zeta=0.5*MathematicalConstants::Pi;
445 if (std::abs(x[0])>1e-4) zeta=atan(x[1]/x[0]);
452 BlackBoxFDNewtonSolver::black_box_fd_newton_solve(
463 double dx=
X_sarah(rho,zeta,time)-x[0];
464 double dy=
Y_sarah(rho,zeta,time)-x[1];
465 double error=sqrt(dx*dx+dy*dy);
468 std::cout <<
"Trafo error " << error << std::endl;
473 soln[0]=
U_sarah(rho,zeta,time);
474 soln[1]=
V_sarah(rho,zeta,time);
485 const Vector<double>& x,
486 Vector<double>& soln)
496 Vector<double> params(3);
503 Vector<double> unknowns(2);
506 double rho=sqrt(x[0]*x[0]+x[1]*x[1]);
507 double zeta=0.5*MathematicalConstants::Pi;
508 if (std::abs(x[0])>1e-4) zeta=atan(x[1]/x[0]);
515 BlackBoxFDNewtonSolver::black_box_fd_newton_solve(
526 double dx=
X_sarah(rho,zeta,time)-x[0];
527 double dy=
Y_sarah(rho,zeta,time)-x[1];
528 double error=sqrt(dx*dx+dy*dy);
531 std::cout <<
"Trafo error " << error << std::endl;
536 soln[0]=
U_sarah(rho,zeta,time);
537 soln[1]=
V_sarah(rho,zeta,time);
double Total_Diss_lead_sarah(double t)
double X_sarah(double rho, double zeta, double t)
double Y_sarah(double rho, double zeta, double t)
double Diss_sarah(double rho, double zeta, double t)
void full_exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Full exact solution: x,y,u,v,p,du/dt,dv/dt,diss.
double P_sarah(double rho, double zeta, double t)
void buckled_ring_residual(const Vector< double > ¶ms, const Vector< double > &unknowns, Vector< double > &residuals)
Residual function for buckled ring.
double V_sarah(double rho, double zeta, double t)
double Total_Diss_sarah(double t)
double U_sarah(double rho, double zeta, double t)
void exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Exact solution: x,y,u,v,p.
double Kin_energy_sarah(double t)