diff --git a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C index 8bca126f9b503a10f0ff1488117626d4107f74a3..edcd775d3a9fb8e1f928a9bb108ea75606b94fb4 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C +++ b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.C @@ -156,6 +156,47 @@ timeVaryingMappedFixedValuePointPatchField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template<class Type> +void Foam::timeVaryingMappedFixedValuePointPatchField<Type>::autoMap +( + const pointPatchFieldMapper& m +) +{ + fixedValuePointPatchField<Type>::autoMap(m); + if (startSampledValues_.size()) + { + startSampledValues_.autoMap(m); + endSampledValues_.autoMap(m); + } + // Clear interpolator + mapperPtr_.clear(); + startSampleTime_ = -1; + endSampleTime_ = -1; +} + + +template<class Type> +void Foam::timeVaryingMappedFixedValuePointPatchField<Type>::rmap +( + const pointPatchField<Type>& ptf, + const labelList& addr +) +{ + fixedValuePointPatchField<Type>::rmap(ptf, addr); + + const timeVaryingMappedFixedValuePointPatchField<Type>& tiptf = + refCast<const timeVaryingMappedFixedValuePointPatchField<Type> >(ptf); + + startSampledValues_.rmap(tiptf.startSampledValues_, addr); + endSampledValues_.rmap(tiptf.endSampledValues_, addr); + + // Clear interpolator + mapperPtr_.clear(); + startSampleTime_ = -1; + endSampleTime_ = -1; +} + + template<class Type> void Foam::timeVaryingMappedFixedValuePointPatchField<Type>::checkTable() { diff --git a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.H b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.H index 108ec6786ee9b4a804ec0e5c1ebe0068f56ae538..942dc3e4a643960058160516e32533b59cc49937 100644 --- a/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.H +++ b/src/fvMotionSolver/pointPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValuePointPatchField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -167,6 +167,23 @@ public: void checkTable(); + // Mapping functions + + //- Map (and resize as needed) from self given a mapping object + virtual void autoMap + ( + const pointPatchFieldMapper& + ); + + //- Reverse map the given PointPatchField onto + // this PointPatchField + virtual void rmap + ( + const pointPatchField<Type>&, + const labelList& + ); + + // Evaluation functions //- Update the coefficients associated with the patch field