Added virtual function for fvPatch slicing: support for immersed boundary

This commit is contained in:
Hrvoje Jasak 2018-10-24 16:53:25 +01:00
parent f60da6ec49
commit d05d477f30
3 changed files with 25 additions and 3 deletions

View file

@ -74,11 +74,18 @@ public:
// Access
//- Return patch size
virtual label size() const
{
return 0;
}
//- Return patch slice size
virtual label sliceSize() const
{
return 0;
}
//- Return faceCells of zero size
virtual const unallocLabelList& faceCells() const;
};

View file

@ -191,12 +191,18 @@ public:
return polyPatch_.name();
}
//- Return size
//- Return patch size
virtual label size() const
{
return polyPatch_.size();
}
//- Return patch slice size. Immersed boundary support
virtual label sliceSize() const
{
return size();
}
//- Return true if this patch is coupled
virtual bool coupled() const
{
@ -233,11 +239,12 @@ public:
{
return typename List<T>::subList
(
l, size(),
l, sliceSize(),
polyPatch_.start()
);
}
//- Slice list to patch
template<class T>
const typename Field<T>::subField patchSlice
(
@ -246,7 +253,7 @@ public:
{
return typename Field<T>::subField
(
l, size(),
l, sliceSize(),
polyPatch_.start()
);
}

View file

@ -152,6 +152,14 @@ public:
//- Return size equal to number of intersected cells
virtual label size() const;
//- Return patch slice size
// Note: since the immersed boundary patch keeps the faces
// in a separate list, slicing is not allowed. HJ, 10/Oct/2018
virtual label sliceSize() const
{
return 0;
}
//- Return faceCells next to the IB surface
virtual const unallocLabelList& faceCells() const;