void evaluate( const ConstBasisDataSlice<ValueType>& basisData, const ConstGeometricalDataSlice<CoordinateType>& geomData, _1dSliceOf3dArray<ValueType>& result) const { assert(basisData.componentCount() == 1); const int dimWorld = geomData.dimWorld(); for (int dim = 0; dim < dimWorld; ++dim) result(dim) = basisData.values(0) * geomData.normal(dim); }
void evaluate( const ConstBasisDataSlice<ValueType>& basisData, const ConstGeometricalDataSlice<CoordinateType>& geomData, _1dSliceOf3dArray<ValueType>& result) const { assert(basisData.componentCount() == argumentDimension()); assert(result.extent(0) == resultDimension()); for (size_t i = 0; i < dim; ++i) result(i) = basisData.values(i); }
void evaluate(const ConstBasisDataSlice<ValueType> &basisData, const ConstGeometricalDataSlice<CoordinateType> &geomData, _1dSliceOf3dArray<ValueType> &result) const { assert(basisData.componentCount() == argumentDimension()); assert(result.extent(0) == resultDimension()); for (int rdim = 0; rdim < resultDimension(); ++rdim) result(rdim) = (geomData.jacobianTransposed(0, rdim) * basisData.values(0) + geomData.jacobianTransposed(1, rdim) * basisData.values(1)) / geomData.integrationElement(); }
void evaluate( const ConstBasisDataSlice<ValueType>& basisData, const ConstGeometricalDataSlice<CoordinateType>& geomData, _1dSliceOf3dArray<ValueType>& result) const { assert(basisData.componentCount() == 1); assert(geomData.dimWorld() == 3); // result := gradient of the shape function extended outside // the surface so that its normal derivative on the surf. is zero result(0) = basisData.derivatives(0, 0) * geomData.jacobianInverseTransposed(0, 0) + basisData.derivatives(0, 1) * geomData.jacobianInverseTransposed(0, 1); result(1) = basisData.derivatives(0, 0) * geomData.jacobianInverseTransposed(1, 0) + basisData.derivatives(0, 1) * geomData.jacobianInverseTransposed(1, 1); result(2) = basisData.derivatives(0, 0) * geomData.jacobianInverseTransposed(2, 0) + basisData.derivatives(0, 1) * geomData.jacobianInverseTransposed(2, 1); }
void evaluate(const ConstBasisDataSlice<ValueType> &basisData, const ConstGeometricalDataSlice<CoordinateType> &geomData, _1dSliceOf3dArray<ValueType> &result) const { assert(basisData.componentCount() == 1); result(0) = basisData.values(0); }