From 4ac67d6adeff03362b951e5a75a46233d4c3ea18 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Wed, 30 Mar 2016 18:17:51 +0100 Subject: [PATCH] Field: Add block member function to return sub-sets of the field as VectorSpaces --- src/OpenFOAM/fields/Fields/Field/Field.C | 13 +++++++++++++ src/OpenFOAM/fields/Fields/Field/Field.H | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/OpenFOAM/fields/Fields/Field/Field.C b/src/OpenFOAM/fields/Fields/Field/Field.C index 4b628788e..f59091282 100644 --- a/src/OpenFOAM/fields/Fields/Field/Field.C +++ b/src/OpenFOAM/fields/Fields/Field/Field.C @@ -611,6 +611,19 @@ void Foam::Field::replace } +template +template +VSForm Foam::Field::block(const label start) const +{ + VSForm vs; + for (direction i=0; ioperator[](start + i); + } + return vs; +} + + template Foam::tmp> Foam::Field::T() const { diff --git a/src/OpenFOAM/fields/Fields/Field/Field.H b/src/OpenFOAM/fields/Fields/Field/Field.H index 3c5510be5..2e531dfc8 100644 --- a/src/OpenFOAM/fields/Fields/Field/Field.H +++ b/src/OpenFOAM/fields/Fields/Field/Field.H @@ -333,6 +333,9 @@ public: //- Replace a component field of the field void replace(const direction, const cmptType&); + template + VSForm block(const label start) const; + //- Return the field transpose (only defined for second rank tensors) tmp> T() const;