Skip to content
Snippets Groups Projects
Commit 38f391a9 authored by Oliver Sander's avatar Oliver Sander Committed by sander@PCPOOL.MI.FU-BERLIN.DE
Browse files

start a generic implementation

[[Imported from SVN: r5527]]
parent 3882e921
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,45 @@
template <class TargetSpace>
class AverageDistanceAssembler
{};
{
static const int size = TargetSpace::EmbeddedTangentVector::size;
public:
AverageDistanceAssembler(const std::vector<TargetSpace>& coefficients,
const std::vector<double>& weights)
: coefficients_(coefficients),
weights_(weights)
{}
double value(const TargetSpace& x) {
double result = 0;
for (size_t i=0; i<coefficients_.size(); i++) {
double dist = TargetSpace::distance(coefficients_[i], x);
result += 0.5*weights_[i]*dist*dist;
}
return result;
}
void assembleGradient(const TargetSpace& x,
typename TargetSpace::EmbeddedTangentVector& gradient)
{
DUNE_THROW(Dune::NotImplemented, "assembleGradient");
}
void assembleMatrix(const TargetSpace& x,
Dune::FieldMatrix<double,size,size>& matrix)
{
DUNE_THROW(Dune::NotImplemented, "assembleMatrix");
}
const std::vector<TargetSpace> coefficients_;
const std::vector<double> weights_;
};
template <>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment