Skip to content

Commit

Permalink
Polishing forms.cpp of example ns-two-phase.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zhonghua committed Aug 30, 2010
1 parent b4af5cb commit ff2b2b9
Showing 1 changed file with 17 additions and 87 deletions.
104 changes: 17 additions & 87 deletions examples/ns-two-phase/forms.cpp
Expand Up @@ -37,24 +37,10 @@ Ord int_sign_u_v(double a, double b, Func<Ord>* l, Func<Ord>* fu, Func<Ord>* fv)
*/

template<typename Real, typename Scalar>
double int_sign_u_v(int n, double *wt, double a, double b, Func<double>* l, Func<double>* fu, Func<double>* fv)
Scalar int_sign_u_v(int n, double *wt, double a, double b, Func<Real>* l, Func<Real>* fu, Func<Real>* fv)
{
// Quad2D* quad = fu->get_quad_2d();

// int o = 5;
// limit_order(o);

// l->set_quad_order(o, H2D_FN_VAL);
// fu->set_quad_order(o);
// fv->set_quad_order(o);

// double* uval = fu->get_fn_values();
// double* vval = fv->get_fn_values();
// double* lval = l->get_fn_values();

// FIXME
//h1_integrate_expression(((lval[i] < 0.0) ? b : a) * uval[i] * vval[i]);
double result = 0;
Scalar result = 0.0;
for (int i = 0; i < n; i++)
{
result += wt[i] * (((l->val[i] < 0.0) ? b : a) * fu->val[i] * fv->val[i]);
Expand All @@ -63,79 +49,34 @@ double int_sign_u_v(int n, double *wt, double a, double b, Func<double>* l, Func
}

template<typename Real, typename Scalar>
double int_sign_grad_u_grad_v(int n, double *wt, double a, double b, Func<double>* l, Func<double>* fu, Func<double>* fv)
Scalar int_sign_grad_u_grad_v(int n, double *wt, double nu1, double nu2, Func<Real>* l, Func<Real>* fu, Func<Real>* fv)
{
// Quad2D* quad = fu->get_quad_2d();

// int o = 5;
// limit_order(o);
// l->set_quad_order(o, H2D_FN_VAL);
// fu->set_quad_order(o);
// fv->set_quad_order(o);

// double *dudx, *dudy, *dvdx, *dvdy;
// fu->get_dx_dy_values(dudx, dudy);
// fv->get_dx_dy_values(dvdx, dvdy);
// double* lval = l->get_fn_values();

// FIXME: Where is number i in lval[i]?
//h1_integrate_dd_expression(((lval[i] < 0.0) ? nu2 : nu1) * (t_dudx * t_dvdx + t_dudy * t_dvdy));
double result = 0;
Scalar result = 0;
for (int i = 0; i < n; i++)
{
result += wt[i] * (((l->val[i] < 0.0) ? b : a) * (fu->dx[i] * fv->dx[i] + fu->dy[i] * fv->dy[i]));
result += wt[i] * (((l->val[i] < 0.0) ? nu2 : nu1) * (fu->dx[i] * fv->dx[i] + fu->dy[i] * fv->dy[i]));
}
return result;
}

template<typename Real, typename Scalar>
double int_sign_w_nabla_u_v(int n, double *wt, double a, double b, Func<double>* l, Func<double>* w1, Func<double>* w2, Func<double>* fu, Func<double>* fv)
Scalar int_sign_w_nabla_u_v(int n, double *wt, double ro1, double ro2, Func<Real>* l, Func<Real>* w1, Func<Real>* w2, Func<Real>* fu, Func<Real>* fv)
{
// Quad2D* quad = fu->get_quad_2d();

// int o = 5;
// limit_order(o);

// l->set_quad_order(o, H2D_FN_VAL);
// w1->set_quad_order(o, H2D_FN_VAL);
// w2->set_quad_order(o, H2D_FN_VAL);
// fu->set_quad_order(o);
// fv->set_quad_order(o);

// double *dudx, *dudy;
// fu->get_dx_dy_values(dudx, dudy);
// double* lval = l->get_fn_values();
// double* vval = fv->get_fn_values();
// double* w1val = w1->get_fn_values();
// double* w2val = w2->get_fn_values();

// FIXME: the same as above, could not find the define of number 'i'.
//h1_integrate_dd_expression(((lval[i] < 0.0) ? ro2 : ro1) * (w1val[i] * t_dudx + w2val[i] * t_dudy) * vval[i]);
double result = 0;
Scalar result = 0;
for (int i = 0; i < n; i++)
{
result += wt[i] * (((l->val[i] < 0.0) ? b : a) * (w1->val[i] * fu->dx[i] + w2->val[i] * fu->dy[i]) * fv->val[i]);
result += wt[i] * (((l->val[i] < 0.0) ? ro2 : ro1) * (w1->val[i] * fu->dx[i] + w2->val[i] * fu->dy[i]) * fv->val[i]);
}
return result;
}

template<typename Real, typename Scalar>
double int_sign_v(int n, double *wt, double a, double b, Func<double>* l, Func<double>* fu)
Scalar int_sign_v(int n, double *wt, double a, double b, Func<Real>* l, Func<Real>* fu)
{
// Quad2D* quad = fu->get_quad_2d();

// int o = 5;
// limit_order(o);

// l->set_quad_order(o, H2D_FN_VAL);
// fu->set_quad_order(o);

// double* uval = fu->get_fn_values();
// double* lval = l->get_fn_values();

// FIXME: the same as above, could not find the define of number 'i'.
//h1_integrate_expression(((lval[i] < 0.0) ? b : a) * uval[i]);)
double result = 0;
Scalar result = 0;
for (int i = 0; i < n; i++)
{
result += wt[i] * (((l->val[i] < 0.0) ? b : a) * fu->val[i]);
Expand All @@ -152,11 +93,11 @@ Scalar bilinear_form_0_0(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
Func<Scalar>* yprev = ext->fn[2];

// FIXME - mismatched templates cause compilation error
//return int_sign_grad_u_grad_v(Nu1, Nu2, lprev, fu, fv) + int_sign_u_v(Ro1, Ro2, lprev, fu, fv)/tau +
// int_sign_w_nabla_u_v( Ro1, Ro2, lprev, xprev, yprev, fu, fv);
return int_sign_grad_u_grad_v<Real, Scalar>(n, wt, Nu1, Nu2, lprev, fu, fv) +
int_sign_u_v<Real, Scalar>(n, wt, Ro1, Ro2, lprev, fu, fv)/tau +
int_sign_w_nabla_u_v<Real, Scalar>(n, wt, Ro1, Ro2, lprev, xprev, yprev, fu, fv);
}

// FIXME: Please check the following functions.
//scalar bilinear_form_0_2(RealFunction* fu, RealFunction* fv, RefMap* ru, RefMap* rv)
// { return int_dudx_v(fu, fv, ru ,rv ); }
template<typename Real, typename Scalar>
Expand All @@ -165,7 +106,6 @@ Scalar bilinear_form_0_2(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
return int_dudx_v<Real, Scalar>(n, wt, fu, fv);
}

// FIXME: Please check the following functions.
//scalar bilinear_form_1_2(RealFunction* fu, RealFunction* fv, RefMap* ru, RefMap* rv)
// { return int_dudy_v(fu, fv, ru ,rv ); }
template<typename Real, typename Scalar>
Expand All @@ -174,7 +114,6 @@ Scalar bilinear_form_1_2(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
return int_dudy_v<Real, Scalar>(n, wt, fu, fv);
}

// FIXME:
//scalar bilinear_form_2_0(RealFunction* fu, RealFunction* fv, RefMap* ru, RefMap* rv)
// { return int_dudx_v(fu, fv, ru, rv);}
template<typename Real, typename Scalar>
Expand All @@ -183,7 +122,6 @@ Scalar bilinear_form_2_0(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
return int_dudx_v<Real, Scalar>(n, wt, fu, fv);
}

// FIXME:
//scalar bilinear_form_2_1(RealFunction* fu, RealFunction* fv, RefMap* ru, RefMap* rv)
// { return int_dudy_v(fu, fv, ru, rv); }
template<typename Real, typename Scalar>
Expand All @@ -192,7 +130,6 @@ Scalar bilinear_form_2_1(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
return int_dudy_v<Real, Scalar>(n, wt, fu, fv);
}

// FIXME:
//scalar bilinear_form_3_3(RealFunction* fu, RealFunction* fv, RefMap* ru, RefMap* rv)
// { return int_u_v(fu, fv, ru, rv)/tau + int_w_nabla_u_v(&xprev, &yprev, fu, fv, ru, rv); }
template<typename Real, typename Scalar>
Expand All @@ -202,11 +139,9 @@ Scalar bilinear_form_3_3(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* f
Func<Scalar>* yprev = ext->fn[1];

// FIXME - mismatched templates cause compilation error
//return int_u_v<Real, Scalar>(n, wt, fu, fv)/tau + int_w_nabla_u_v(n, wt, xprev, yprev, fu, fv);
return 0;
return int_u_v<Real, Scalar>(n, wt, fu, fv)/tau + int_w_nabla_u_v<Real, Scalar>(n, wt, xprev, yprev, fu, fv);
}

// FIXME:
//scalar linear_form_0(RealFunction* fv, RefMap* rv)
// { return int_sign_u_v(Ro1, Ro2, &lprev, &xprev, fv, rv, rv)/tau; }
template<typename Real, typename Scalar>
Expand All @@ -216,11 +151,9 @@ Scalar linear_form_0(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* fv, G
Func<Scalar>* xprev = ext->fn[1];

// FIXME - mismatched templates cause compilation error
//return int_sign_u_v(Ro1, Ro2, lprev, xprev, fv)/tau;
return 0;
return int_sign_u_v<Real, Scalar>(n, wt, Ro1, Ro2, lprev, xprev, fv)/tau;
}

// FIXME:
//scalar linear_form_1(RealFunction* fv, RefMap* rv)
// { return int_sign_u_v(Ro1, Ro2, &lprev, &yprev, fv, rv, rv)/tau - int_sign_v(10*Ro1, 10*Ro2, &lprev, fv, rv); }
template<typename Real, typename Scalar>
Expand All @@ -230,11 +163,9 @@ Scalar linear_form_1(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* fv, G
Func<Scalar>* yprev = ext->fn[1];

// FIXME - mismatched templates cause compilation error
//return int_sign_u_v(Ro1, Ro2, lprev, &yprev, fv)/tau - int_sign_v(10*Ro1, 10*Ro2, lprev, fv);
return 0;
return int_sign_u_v<Real, Scalar>(n, wt, Ro1, Ro2, lprev, yprev, fv)/tau - int_sign_v<Real, Scalar>(n, wt, 10*Ro1, 10*Ro2, lprev, fv);
}

// FIXME:
//Scalar linear_form_3(RealFunction* fv, RefMap* rv)
// { return int_u_v(&lprev, fv, rv, rv)/tau; }
template<typename Real, typename Scalar>
Expand All @@ -243,6 +174,5 @@ Scalar linear_form_3(int n, double *wt, Func<Scalar> *u_ext[], Func<Real>* fv, G
Func<Scalar>* lprev = ext->fn[0];

// FIXME - mismatched templates cause compilation error
//return int_u_v<Real, Scalar>(n, wt, lprev, fv)/tau;
return 0;
return int_u_v<Real, Scalar>(n, wt, lprev, fv)/tau;
}

0 comments on commit ff2b2b9

Please sign in to comment.