Skip to content
Snippets Groups Projects

Add access to cells' volume of a mesh in the script file

26 files
+ 1001
436
Compare changes
  • Side-by-side
  • Inline

Files

+ 5
5
@@ -27,7 +27,7 @@ struct BiCGStab
r_k_1 = b - A * x;
double residu = std::sqrt((r_k_1, r_k_1)); // Norm(r_k_1);
double residu = std::sqrt(dot(r_k_1, r_k_1)); // Norm(r_k_1);
if (residu != 0) {
double resid0 = residu;
@@ -53,23 +53,23 @@ struct BiCGStab
Ap_k = A * p_k;
const double alpha_k = (r_k_1, rTilda_0) / (Ap_k, rTilda_0);
const double alpha_k = dot(r_k_1, rTilda_0) / dot(Ap_k, rTilda_0);
s_k = r_k_1 - alpha_k * Ap_k;
As_k = A * s_k;
const double w_k = (As_k, s_k) / (As_k, As_k);
const double w_k = dot(As_k, s_k) / dot(As_k, As_k);
x += alpha_k * p_k + w_k * s_k;
r_k = s_k - w_k * As_k;
const double beta_k = (r_k, rTilda_0) / (r_k_1, rTilda_0) * (alpha_k / w_k);
const double beta_k = dot(r_k, rTilda_0) / dot(r_k_1, rTilda_0) * (alpha_k / w_k);
p_k -= w_k * Ap_k;
p_k *= beta_k;
p_k += r_k;
if ((residu = std::sqrt((r_k, r_k))) / resid0 < epsilon) {
if ((residu = std::sqrt(dot(r_k, r_k))) / resid0 < epsilon) {
break;
}
Loading