コード例 #1
0
 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);
 }
コード例 #3
0
 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();
 }
コード例 #4
0
    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);
    }
コード例 #5
0
 void evaluate(const ConstBasisDataSlice<ValueType> &basisData,
               const ConstGeometricalDataSlice<CoordinateType> &geomData,
               _1dSliceOf3dArray<ValueType> &result) const {
   assert(basisData.componentCount() == 1);
   result(0) = basisData.values(0);
 }