diff --git a/AMDiS/src/Operator.cc b/AMDiS/src/Operator.cc index 8e5ea6cdd6322117301d2be23bb07849eeabf252..946b8d4b91838059163597f9263104a3c012f0a1 100644 --- a/AMDiS/src/Operator.cc +++ b/AMDiS/src/Operator.cc @@ -198,33 +198,19 @@ namespace AMDiS { void Operator::addTerm(ZeroOrderTerm *term) { - zeroOrder.push_back(term); - term->operat = this; - for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin(); - it != term->getAuxFeSpaces().end(); ++it) - auxFeSpaces.insert(*it); + addZeroOrderTerm(term); } + void Operator::addTerm(FirstOrderTerm *term, FirstOrderType type) { - if (type == GRD_PSI) { - firstOrderGrdPsi.push_back(term); - } else { - firstOrderGrdPhi.push_back(term); - } - term->operat = this; - for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin(); - it != term->getAuxFeSpaces().end(); ++it) - auxFeSpaces.insert(*it); + addFirstOrderTerm(term, type); } + void Operator::addTerm(SecondOrderTerm *term) { - secondOrder.push_back(term); - term->operat = this; - for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin(); - it != term->getAuxFeSpaces().end(); ++it) - auxFeSpaces.insert(*it); + addSecondOrderTerm(term); } } diff --git a/AMDiS/src/Operator.h b/AMDiS/src/Operator.h index 2f5badc5ab98eecb0a6304bacdccdb1b6906f2c7..1658e758451a9fc2b8b0684c76270894d3e7f170 100644 --- a/AMDiS/src/Operator.h +++ b/AMDiS/src/Operator.h @@ -78,21 +78,26 @@ namespace AMDiS { return optimized; } - /// Adds a SecondOrderTerm to the Operator + /// Adds a ZeroOrderTerm to the Operator template <typename T> - void addSecondOrderTerm(T *term); + void addZeroOrderTerm(T *term); /// Adds a FirstOrderTerm to the Operator template <typename T> void addFirstOrderTerm(T *term, FirstOrderType type = GRD_PHI); - /// Adds a ZeroOrderTerm to the Operator + /// Adds a SecondOrderTerm to the Operator template <typename T> - void addZeroOrderTerm(T *term); + void addSecondOrderTerm(T *term); + /// Adds a ZeroOrderTerm to the Operator void addTerm(ZeroOrderTerm *term); + + /// Adds a FirstOrderTerm to the Operator void addTerm(FirstOrderTerm *term, FirstOrderType type); + + /// Adds a SecondOrderTerm to the Operator void addTerm(SecondOrderTerm *term); /** \brief