From 1dba0d878905a31399f441e433b9c489bd04c8b4 Mon Sep 17 00:00:00 2001 From: Simon Praetorius <simon.praetorius@tu-dresden.de> Date: Thu, 10 May 2012 13:03:16 +0000 Subject: [PATCH] Vector_FOT with factor --- AMDiS/src/FirstOrderTerm.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/AMDiS/src/FirstOrderTerm.h b/AMDiS/src/FirstOrderTerm.h index a1ee0a70..51bf445a 100644 --- a/AMDiS/src/FirstOrderTerm.h +++ b/AMDiS/src/FirstOrderTerm.h @@ -203,13 +203,13 @@ namespace AMDiS { { public: /// Constructor. - Vector_FOT(WorldVector<double> *wv) - : FirstOrderTerm(0), b(wv) + Vector_FOT(WorldVector<double> *wv, double fac_ = 1.0) + : FirstOrderTerm(0), b(wv), fac(fac_) {} /// Constructor. - Vector_FOT(int bIdx) - : FirstOrderTerm(0) + Vector_FOT(int bIdx, double fac_ = 1.0) + : FirstOrderTerm(0), fac(fac_) { bOne = bIdx; } @@ -223,10 +223,10 @@ namespace AMDiS { if (bOne > -1) { for (int iq = 0; iq < nPoints; iq++) - lb_one(grdLambda, Lb[iq], 1.0); + lb_one(grdLambda, Lb[iq], fac); } else { for (int iq = 0; iq < nPoints; iq++) - lb(grdLambda, *b, Lb[iq], 1.0); + lb(grdLambda, *b, Lb[iq], fac); } } @@ -238,14 +238,17 @@ namespace AMDiS { mtl::dense_vector<double>& result, double factor) { - if (num_rows(grdUhAtQP) > 0) + if (num_rows(grdUhAtQP) > 0) { + double factor_ = factor * fac; for (int iq = 0; iq < nPoints; iq++) - result[iq] += *b * grdUhAtQP[iq] * factor; + result[iq] += *b * grdUhAtQP[iq] * factor_; + } } protected: /// Vector which is multiplied with \f$ \nabla u(\vec{x}) \f$ WorldVector<double> *b; + double fac; }; /** -- GitLab