Commit fdbb06df authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Work on 3d parallelization.

parent bdd0796c
......@@ -378,9 +378,9 @@ namespace AMDiS {
template<typename T>
void DOFVector<T>::interpol(AbstractFunction<T, WorldVector<double> > *fct)
{
FUNCNAME("interpol");
FUNCNAME("DOFVector::interpol()");
TEST_EXIT_DBG(fct)("no function to interpolate\n");
TEST_EXIT_DBG(fct)("No function to interpolate!\n");
interFct = fct;
......
......@@ -570,9 +570,7 @@ namespace AMDiS {
lalt_kl(Lambda, xi, xj, *(LALt[iq]), (*factor));
}
/** \brief
* Implenetation of SecondOrderTerm::eval().
*/
/// Implenetation of SecondOrderTerm::eval().
void eval(int nPoints,
const double *,
const WorldVector<double> *,
......@@ -585,9 +583,7 @@ namespace AMDiS {
result[iq] += (*factor) * D2UhAtQP[iq][xi][xj] * fac;
}
/** \brief
* Implenetation of SecondOrderTerm::weakEval().
*/
/// Implenetation of SecondOrderTerm::weakEval().
void weakEval(int nPoints,
const WorldVector<double> *grdUhAtQP,
WorldVector<double> *result) const
......@@ -598,14 +594,10 @@ namespace AMDiS {
}
private:
/** \brief
* Directions for the derivatives.
*/
/// Directions for the derivatives.
int xi, xj;
/** \brief
* Pointer to the factor.
*/
/// Pointer to the factor.
double *factor;
};
......@@ -722,20 +714,14 @@ namespace AMDiS {
setSymmetric(true);
}
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements SecondOrderTerm::getLALt().
*/
/// Implements SecondOrderTerm::getLALt().
void getLALt(const ElInfo *elInfo, int nPoints, DimMat<double> **LALt) const;
/** \brief
* Implenetation of SecondOrderTerm::eval().
*/
/// Implenetation of SecondOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -743,23 +729,17 @@ namespace AMDiS {
double *result,
double factor) const;
/** \brief
* Implenetation of SecondOrderTerm::weakEval().
*/
/// Implenetation of SecondOrderTerm::weakEval().
void weakEval(int nPoints,
const WorldVector<double> *grdUhAtQP,
WorldVector<double> *result) const;
protected:
/** \brief
* Stores coordinates at quadrature points. Set in \ref initElement().
*/
/// Stores coordinates at quadrature points. Set in \ref initElement().
WorldVector<double>* coordsAtQPs;
/** \brief
* Function evaluated at quadrature points.
*/
/// Function evaluated at quadrature points.
AbstractFunction<double, WorldVector<double> > *g;
};
......@@ -2522,20 +2502,14 @@ namespace AMDiS {
VecGradCoordsAtQP_ZOT(DOFVectorBase<double> *dv,
TertiaryAbstractFunction<double, double, WorldVector<double>, WorldVector<double> > *f);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2544,26 +2518,18 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs;
/** \brief
* Gradient at quadrature points.
*/
/// Gradient at quadrature points.
WorldVector<double>* gradAtQPs;
WorldVector<double>* coordsAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
TertiaryAbstractFunction<double, double, WorldVector<double>, WorldVector<double> > *f;
};
......@@ -2579,20 +2545,14 @@ namespace AMDiS {
VecAndCoordsAtQP_ZOT(DOFVectorBase<double> *dv,
BinaryAbstractFunction<double, double, WorldVector<double> > *f);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2601,24 +2561,16 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs;
/** \brief
* Gradient at quadrature points.
*/
/// Gradient at quadrature points.
WorldVector<double>* coordsAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
BinaryAbstractFunction<double, double, WorldVector<double> > *f;
};
......@@ -2635,20 +2587,14 @@ namespace AMDiS {
Vec2AndGradAtQP_ZOT(DOFVectorBase<double> *dv1, DOFVectorBase<double> *dv2,
TertiaryAbstractFunction<double, double, WorldVector<double>, double > *af);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2657,26 +2603,18 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec1;
DOFVectorBase<double>* vec2;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs1;
double *vecAtQPs2;
/** \brief
* Gradient at quadrature points.
*/
/// Gradient at quadrature points.
WorldVector<double> *gradAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
TertiaryAbstractFunction<double, double, WorldVector<double>, double > *f;
};
......@@ -2694,20 +2632,14 @@ namespace AMDiS {
FctGradient_ZOT(DOFVectorBase<double> *dv,
AbstractFunction<double, WorldVector<double> > *f);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements SecondOrderTerm::getC().
*/
/// Implements SecondOrderTerm::getC().
void getC(const ElInfo *elInfo, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2718,9 +2650,7 @@ namespace AMDiS {
protected:
DOFVectorBase<double>* vec;
/** \brief
* Function wich maps \ref gradAtQPs to a double.
*/
/// Function wich maps \ref gradAtQPs to a double.
AbstractFunction<double, WorldVector<double> > *f;
/** \brief
......@@ -2743,20 +2673,14 @@ namespace AMDiS {
VecAndGradAtQP_ZOT(DOFVectorBase<double> *dv,
BinaryAbstractFunction<double, double, WorldVector<double> > *f);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2765,24 +2689,16 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs;
/** \brief
* Gradient at quadrature points.
*/
/// Gradient at quadrature points.
WorldVector<double> *gradAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
BinaryAbstractFunction<double, double, WorldVector<double> > *f;
};
......@@ -2798,21 +2714,15 @@ namespace AMDiS {
VecAndGradAtQP_SOT(DOFVectorBase<double> *dv,
BinaryAbstractFunction<double, double, WorldVector<double> > *af);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements SecondOrderTerm::getLALt().
*/
/// Implements SecondOrderTerm::getLALt().
inline void getLALt(const ElInfo *elInfo, int nPoints, DimMat<double> **LALt) const;
/** \brief
* Implements SecondOrderTerm::eval().
*/
/// Implements SecondOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2820,32 +2730,22 @@ namespace AMDiS {
double *result,
double factor) const;
/** \brief
* Implements SecondOrderTerm::weakEval().
*/
/// Implements SecondOrderTerm::weakEval().
void weakEval(int nPoints,
const WorldVector<double> *grdUhAtQP,
WorldVector<double> *result) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs;
/** \brief
* Gradient at quadrature points.
*/
/// Gradient at quadrature points.
WorldVector<double> *gradAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
BinaryAbstractFunction<double, double, WorldVector<double> > *f;
};
......@@ -2916,21 +2816,15 @@ namespace AMDiS {
: ZeroOrderTerm(af->getDegree()), g(af)
{}
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo,
SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2939,14 +2833,10 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* Stores coordinates at quadrature points. Set in \ref initElement().
*/
/// Stores coordinates at quadrature points. Set in \ref initElement().
WorldVector<double>* coordsAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
AbstractFunction<double, WorldVector<double> > *g;
};
......@@ -2969,20 +2859,14 @@ namespace AMDiS {
setSymmetric(xi == xj);
}
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements SecondOrderTerm::getLALt().
*/
/// Implements SecondOrderTerm::getLALt().
inline void getLALt(const ElInfo *elInfo, int nPoints, DimMat<double> **LALt) const;
/** \brief
* Implements SecondOrderTerm::eval().
*/
/// Implements SecondOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -2990,27 +2874,19 @@ namespace AMDiS {
double *result,
double factor) const;
/** \brief
* Implements SecondOrderTerm::weakEval().
*/
/// Implements SecondOrderTerm::weakEval().
void weakEval(int nPoints,
const WorldVector<double> *grdUhAtQP,
WorldVector<double> *result) const;
private:
/** \brief
* Stores coordinates at quadrature points. Set in \ref initElement().
*/
/// Stores coordinates at quadrature points. Set in \ref initElement().
WorldVector<double>* coordsAtQPs;
/** \brief
* Function evaluated at quadrature points.
*/
/// Function evaluated at quadrature points.
AbstractFunction<double, WorldVector<double> > *g;
/** \brief
* Directions for the derivatives.
*/
/// Directions for the derivatives.
int xi, xj;
};
......@@ -3030,20 +2906,14 @@ namespace AMDiS {
VecAtQP_IJ_SOT(DOFVectorBase<double> *dv, AbstractFunction<double, double> *af,
int x_i, int x_j);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements SecondOrderTerm::getLALt().
*/
/// Implements SecondOrderTerm::getLALt().
void getLALt(const ElInfo *elInfo, int nPoints, DimMat<double> **LALt) const;
/** \brief
* Implements SecondOrderTerm::eval().
*/
/// Implements SecondOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -3051,34 +2921,23 @@ namespace AMDiS {
double *result,
double factor) const;
/** \brief
* Implements SecondOrderTerm::weakEval().
*/
/// Implements SecondOrderTerm::weakEval().
void weakEval(int nPoints,
const WorldVector<double> *grdUhAtQP,
WorldVector<double> *result) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Pointer to an array containing the DOFVector evaluated at quadrature
* points.
*/
/// Pointer to an array containing the DOFVector evaluated at quadrature points.
double* vecAtQPs;
/** \brief
* Function evaluated at \ref vecAtQPs.
*/
/// Function evaluated at \ref vecAtQPs.
AbstractFunction<double, double> *f;
private:
/** \brief
* Directions for the derivatives.
*/
/// Directions for the derivatives.
int xi, xj;
};
......@@ -3090,20 +2949,14 @@ namespace AMDiS {
DOFVectorBase<double> *dGrd,
BinaryAbstractFunction<double, double, WorldVector<double> > *f);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief
* Implements ZeroOrderTerm::getC().
*/
/// Implements ZeroOrderTerm::getC().
void getC(const ElInfo *, int nPoints, std::vector<double> &C) const;
/** \brief
* Implements ZeroOrderTerm::eval().
*/
/// Implements ZeroOrderTerm::eval().
void eval(int nPoints,
const double *uhAtQP,
const WorldVector<double> *grdUhAtQP,
......@@ -3112,29 +2965,19 @@ namespace AMDiS {
double fac) const;
protected:
/** \brief
* DOFVector to be evaluated at quadrature points.
*/
/// DOFVector to be evaluated at quadrature points.
DOFVectorBase<double>* vec;
/** \brief
* Vector v at quadrature points.
*/
/// Vector v at quadrature points.
double *vecAtQPs;
/** \brief
* First DOFVector whose gradient is evaluated at quadrature points.
*/
/// First DOFVector whose gradient is evaluated at quadrature points.
DOFVectorBase<double>* vecGrd;
/** \brief
* Gradient of first vector at quadrature points.
*/
/// Gradient of first vector at quadrature points.
WorldVector<double> *gradAtQPs;
/** \brief
* Function for c.
*/
/// Function for c.
BinaryAbstractFunction<double, double, WorldVector<double> > *f;
};
......@@ -3147,20 +2990,14 @@ namespace AMDiS {
DOFVectorBase<double> *dGrd2,
TertiaryAbstractFunction<double, double, WorldVector<double>, WorldVector<double> > *af);
/** \brief
* Implementation of \ref OperatorTerm::initElement().
*/
/// Implementation of \ref OperatorTerm::initElement().
void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
Quadrature *quad = NULL);
/** \brief