[cig-commits] commit: solCX is set correctly when eta!=1
Mercurial
hg at geodynamics.org
Fri Feb 10 16:00:18 PST 2012
changeset: 20:83d2c60ea56b
user: Walter Landry <wlandry at caltech.edu>
date: Sun Dec 04 14:12:07 2011 -0800
files: constants.hxx initial.cxx
description:
solCX is set correctly when eta!=1
diff -r e54175da78d8 -r 83d2c60ea56b constants.hxx
--- a/constants.hxx Sun Dec 04 12:09:42 2011 -0800
+++ b/constants.hxx Sun Dec 04 14:12:07 2011 -0800
@@ -1,7 +1,7 @@ const int N(64);
const int N(64);
// const double max_eta=1e10;
-const double max_eta=1;
-const double min_eta=1;
+const double max_eta=2;
+const double min_eta=2;
const double eta_jump=max_eta-min_eta;
#include <cmath>
const double log_max_eta=std::log(max_eta);
diff -r e54175da78d8 -r 83d2c60ea56b initial.cxx
--- a/initial.cxx Sun Dec 04 12:09:42 2011 -0800
+++ b/initial.cxx Sun Dec 04 14:12:07 2011 -0800
@@ -29,10 +29,10 @@ void initial(const Model &model, double
-sinh0-kx0*cosh0, -kx0*cosh0, (sinh1+kx1*cosh1), kx1*cosh1};
double rhs[]={
- ((kx0*cosh0 - sin0)*eta0 + (kx1*cosh1 - sin1)*eta1)*rho/2,
- ((cos0 - cosh0 - kx0*sinh0)*eta0 + (cos1 - cosh1 - kx1*sinh1)*eta1)*rho/2,
- (kx0*sinh0*eta0 + kx1*sinh1*eta1)*rho/2,
- ((sinh0 + kx0*cosh0)*eta0 + (sinh1 + kx1*cosh1)*eta1)*rho/2};
+ ((kx0*cosh0 - sin0)/eta0 + (kx1*cosh1 - sin1)/eta1)*rho/2,
+ ((cos0 - cosh0 - kx0*sinh0)/eta0 + (cos1 - cosh1 - kx1*sinh1)/eta1)*rho/2,
+ (kx0*sinh0/eta0 + kx1*sinh1/eta1)*rho/2,
+ ((sinh0 + kx0*cosh0)/eta0 + (sinh1 + kx1*cosh1)/eta1)*rho/2};
gsl_matrix_view mv=gsl_matrix_view_array(m,4,4);
@@ -56,8 +56,8 @@ void initial(const Model &model, double
std::cout << "soln\n";
gsl_vector_fprintf(stdout,x,"%g ");
- double v0(gsl_vector_get(x,0)), tau_0(gsl_vector_get(x,1)),
- v1(gsl_vector_get(x,2)), tau_1(gsl_vector_get(x,3));
+ double v0(gsl_vector_get(x,0)), tau_eta_0(gsl_vector_get(x,1)),
+ v1(gsl_vector_get(x,2)), tau_eta_1(gsl_vector_get(x,3));
gsl_vector_free(x);
for(int i=0;i<N+1;++i)
@@ -77,12 +77,12 @@ void initial(const Model &model, double
break;
case Model::solCx:
{
- double kx, v, tau, eta, sign;
+ double kx, v, tau_eta, eta, sign;
if(x<middle)
{
kx=pi*x;
v=v0;
- tau=tau_0;
+ tau_eta=tau_eta_0;
eta=min_eta;
sign=1;
}
@@ -90,13 +90,13 @@ void initial(const Model &model, double
{
kx=pi*(x-1);
v=v1;
- tau=tau_1;
+ tau_eta=tau_eta_1;
eta=max_eta;
sign=-1;
}
const double csh(std::cosh(kx)), cs(std::cos(kx)),
snh(std::sinh(kx)), sn(std::sin(kx));
- p[i][j]=-2*pi*((v/eta + tau)*csh + sign*(csh - cs)*rho/2)
+ p[i][j]=-2*pi*((v + tau_eta)*eta*csh + sign*(csh - cs)*rho/2)
*std::cos(pi*y);
}
break;
@@ -125,12 +125,12 @@ void initial(const Model &model, double
log_etax[i][j]=log_min_eta;
}
{
- double kx, v, tau, eta, sign;
+ double kx, v, tau_eta, eta, sign;
if(x<middle)
{
kx=pi*x;
v=v0;
- tau=tau_0;
+ tau_eta=tau_eta_0;
eta=min_eta;
sign=1;
}
@@ -138,15 +138,15 @@ void initial(const Model &model, double
{
kx=pi*(x-1);
v=v1;
- tau=tau_1;
+ tau_eta=tau_eta_1;
eta=max_eta;
sign=-1;
}
const double csh(std::cosh(kx)), cs(std::cos(kx)),
snh(std::sinh(kx)), sn(std::sin(kx));
- zx[i][j]=(eta*tau*snh - (v+tau*eta)*kx*csh
- - sign*rho*eta*(kx*csh/2 - sn/2))
- *std::cos(pi*y);
+ zx[i][j]=(tau_eta*snh - (v+tau_eta)*kx*csh
+ - sign*rho*(kx*csh/2 - sn/2)/eta)
+ *std::cos(pi*y)*eta;
}
break;
case Model::sinker:
@@ -204,12 +204,12 @@ void initial(const Model &model, double
}
{
const double pi(atan(1.0)*4);
- double kx, v, tau, eta, sign;
+ double kx, v, tau_eta, eta, sign;
if(x<middle)
{
kx=pi*x;
v=v0;
- tau=tau_0;
+ tau_eta=tau_eta_0;
eta=min_eta;
sign=1;
}
@@ -217,15 +217,15 @@ void initial(const Model &model, double
{
kx=pi*(x-1);
v=v1;
- tau=tau_1;
+ tau_eta=tau_eta_1;
eta=max_eta;
sign=-1;
}
const double csh(std::cosh(kx)), cs(std::cos(kx)),
snh(std::sinh(kx)), sn(std::sin(kx));
- zy[i][j]=(v*csh + (v+tau*eta)*kx*snh
- - sign*eta*rho*(cs - csh - kx*snh)/2)
- *std::sin(pi*y);
+ zy[i][j]=(v*csh + (v+tau_eta)*kx*snh
+ - sign*rho*(cs - csh - kx*snh)/(2*eta))
+ *std::sin(pi*y)*eta;
}
break;
case Model::sinker:
More information about the CIG-COMMITS
mailing list