diff --git a/FunctionSpace/LocalFunctionSpace0Form.cpp b/FunctionSpace/LocalFunctionSpace0Form.cpp index 45bc101dc7c5deb63b9440454b23077e7111c5dc..2a0a449004f9419fce67accdf87a140c86ce2555 100644 --- a/FunctionSpace/LocalFunctionSpace0Form.cpp +++ b/FunctionSpace/LocalFunctionSpace0Form.cpp @@ -29,11 +29,11 @@ double LocalFunctionSpace0Form::interpolate(const fullVector<double>& coef, double x, double y, double z) const{ double res = 0; - for(int i = 0; i < size; i++){ - fullVector<double> uv = jac->invMap(x, y); + fullVector<double> uv = jac->invMap(x, y); + for(int i = 0; i < size; i++) res += (*basis)[i].at(uv(0), uv(1), 0.0); - } + return res; } diff --git a/FunctionSpace/LocalFunctionSpace1Form.cpp b/FunctionSpace/LocalFunctionSpace1Form.cpp index 0dcd28c4c8b9181b4147a9b495827c7bbe418de5..2cc5cf9706b16d0a2f5603c25d146b1efbcc6bdb 100644 --- a/FunctionSpace/LocalFunctionSpace1Form.cpp +++ b/FunctionSpace/LocalFunctionSpace1Form.cpp @@ -31,14 +31,23 @@ fullVector<double> LocalFunctionSpace1Form:: interpolate(const fullVector<double>& coef, double x, double y, double z) const{ - //double res = 0; + fullVector<double> res(3); + res(0) = 0; + res(1) = 0; + res(2) = 0; + + fullVector<double> uv = jac->invMap(x, y); for(int i = 0; i < size; i++){ - //fullVector<double> uv = jac->invMap(x, y); - - //res += (*basis)[i].at(uv(0), uv(1), 0.0); + res(0) += (*basis)[i][0].at(uv(0), uv(1), 0.0) * (*orient)[i]; + res(1) += (*basis)[i][1].at(uv(0), uv(1), 0.0) * (*orient)[i]; } - //return res; + fullVector<double> gradRes = jac->grad(res(0), res(1)); + + res(0) = gradRes(0); + res(1) = gradRes(1); + + return res; }