mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
MRG: Incremental foundation merge
This commit is contained in:
@ -97,7 +97,7 @@ Foam::scalarField Foam::cellShapeControl::cellSize
|
|||||||
|
|
||||||
Foam::scalar Foam::cellShapeControl::cellSize(const point& pt) const
|
Foam::scalar Foam::cellShapeControl::cellSize(const point& pt) const
|
||||||
{
|
{
|
||||||
scalarList bary;
|
FixedList<scalar, 4> bary;
|
||||||
cellShapeControlMesh::Cell_handle ch;
|
cellShapeControlMesh::Cell_handle ch;
|
||||||
|
|
||||||
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
||||||
@ -172,7 +172,7 @@ Foam::scalar Foam::cellShapeControl::cellSize(const point& pt) const
|
|||||||
|
|
||||||
Foam::tensor Foam::cellShapeControl::cellAlignment(const point& pt) const
|
Foam::tensor Foam::cellShapeControl::cellAlignment(const point& pt) const
|
||||||
{
|
{
|
||||||
scalarList bary;
|
FixedList<scalar, 4> bary;
|
||||||
cellShapeControlMesh::Cell_handle ch;
|
cellShapeControlMesh::Cell_handle ch;
|
||||||
|
|
||||||
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
||||||
@ -244,7 +244,7 @@ void Foam::cellShapeControl::cellSizeAndAlignment
|
|||||||
tensor& alignment
|
tensor& alignment
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
scalarList bary;
|
FixedList<scalar, 4> bary;
|
||||||
cellShapeControlMesh::Cell_handle ch;
|
cellShapeControlMesh::Cell_handle ch;
|
||||||
|
|
||||||
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
shapeControlMesh_.barycentricCoords(pt, bary, ch);
|
||||||
|
|||||||
@ -450,7 +450,7 @@ Foam::cellShapeControlMesh::~cellShapeControlMesh()
|
|||||||
void Foam::cellShapeControlMesh::barycentricCoords
|
void Foam::cellShapeControlMesh::barycentricCoords
|
||||||
(
|
(
|
||||||
const Foam::point& pt,
|
const Foam::point& pt,
|
||||||
scalarList& bary,
|
FixedList<scalar, 4>& bary,
|
||||||
Cell_handle& ch
|
Cell_handle& ch
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -122,7 +122,7 @@ public:
|
|||||||
void barycentricCoords
|
void barycentricCoords
|
||||||
(
|
(
|
||||||
const Foam::point& pt,
|
const Foam::point& pt,
|
||||||
scalarList& bary,
|
FixedList<scalar, 4>& bary,
|
||||||
Cell_handle& ch
|
Cell_handle& ch
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ Foam::fileControl::~fileControl()
|
|||||||
//
|
//
|
||||||
//Foam::scalar Foam::fileControl::cellSize(const point& pt) const
|
//Foam::scalar Foam::fileControl::cellSize(const point& pt) const
|
||||||
//{
|
//{
|
||||||
// scalarList bary;
|
// FixedList<scalar, 4> bary;
|
||||||
// Cell_handle ch;
|
// Cell_handle ch;
|
||||||
//
|
//
|
||||||
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
||||||
@ -112,7 +112,7 @@ Foam::fileControl::~fileControl()
|
|||||||
////- Return the cell alignment at the given location
|
////- Return the cell alignment at the given location
|
||||||
//Foam::tensor Foam::fileControl::cellAlignment(const point& pt) const
|
//Foam::tensor Foam::fileControl::cellAlignment(const point& pt) const
|
||||||
//{
|
//{
|
||||||
// scalarList bary;
|
// FixedList<scalar, 4> bary;
|
||||||
// Cell_handle ch;
|
// Cell_handle ch;
|
||||||
//
|
//
|
||||||
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
||||||
@ -144,7 +144,7 @@ Foam::fileControl::~fileControl()
|
|||||||
// tensor& alignment
|
// tensor& alignment
|
||||||
//) const
|
//) const
|
||||||
//{
|
//{
|
||||||
// scalarList bary;
|
// FixedList<scalar, 4> bary;
|
||||||
// Cell_handle ch;
|
// Cell_handle ch;
|
||||||
//
|
//
|
||||||
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
// triangulatedMesh_.barycentricCoords(pt, bary, ch);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -118,8 +118,7 @@ Foam::scalar Foam::nonUniformField::interpolate
|
|||||||
pts[faceHitByPt[2]]
|
pts[faceHitByPt[2]]
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarList bary(3, 0.0);
|
FixedList<scalar, 3> bary;
|
||||||
|
|
||||||
tri.barycentric(pt, bary);
|
tri.barycentric(pt, bary);
|
||||||
|
|
||||||
// return pointCellSize_[pMap[faceHitByPt[0]]]*bary[0]
|
// return pointCellSize_[pMap[faceHitByPt[0]]]*bary[0]
|
||||||
|
|||||||
@ -91,6 +91,11 @@ public:
|
|||||||
HashTable<T, label, Hash<label>>(map)
|
HashTable<T, label, Hash<label>>(map)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
//- Construct from an initializer list
|
||||||
|
Map(std::initializer_list<Tuple2<label, T>> map)
|
||||||
|
:
|
||||||
|
HashTable<T, label, Hash<label>>(map)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -72,6 +72,15 @@ Foam::SortableList<T>::SortableList(const SortableList<T>& lst)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
Foam::SortableList<T>::SortableList(std::initializer_list<T> values)
|
||||||
|
:
|
||||||
|
List<T>(values)
|
||||||
|
{
|
||||||
|
sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
@ -138,20 +147,27 @@ inline void Foam::SortableList<T>::operator=(const T& t)
|
|||||||
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
inline void Foam::SortableList<T>::operator=(const UList<T>& rhs)
|
inline void Foam::SortableList<T>::operator=(const UList<T>& lst)
|
||||||
{
|
{
|
||||||
List<T>::operator=(rhs);
|
List<T>::operator=(lst);
|
||||||
indices_.clear();
|
indices_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
inline void Foam::SortableList<T>::operator=(const SortableList<T>& rhs)
|
inline void Foam::SortableList<T>::operator=(const SortableList<T>& lst)
|
||||||
{
|
{
|
||||||
List<T>::operator=(rhs);
|
List<T>::operator=(lst);
|
||||||
indices_ = rhs.indices();
|
indices_ = lst.indices();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
inline void Foam::SortableList<T>::operator=(std::initializer_list<T> lst)
|
||||||
|
{
|
||||||
|
List<T>::operator=(lst);
|
||||||
|
sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -67,33 +67,36 @@ public:
|
|||||||
//- Null constructor, sort later (eg, after assignment or transfer)
|
//- Null constructor, sort later (eg, after assignment or transfer)
|
||||||
SortableList();
|
SortableList();
|
||||||
|
|
||||||
//- Construct from UList, sorting immediately.
|
//- Construct from UList, sorting immediately
|
||||||
explicit SortableList(const UList<T>&);
|
explicit SortableList(const UList<T>&);
|
||||||
|
|
||||||
//- Construct from transferred List, sorting immediately.
|
//- Construct from transferred List, sorting immediately
|
||||||
explicit SortableList(const Xfer<List<T>>&);
|
explicit SortableList(const Xfer<List<T>>&);
|
||||||
|
|
||||||
//- Construct given size. Sort later on.
|
//- Construct given size. Sort later on
|
||||||
// The indices remain empty until the list is sorted
|
// The indices remain empty until the list is sorted
|
||||||
explicit SortableList(const label size);
|
explicit SortableList(const label size);
|
||||||
|
|
||||||
//- Construct given size and initial value. Sort later on.
|
//- Construct given size and initial value. Sort later on
|
||||||
// The indices remain empty until the list is sorted
|
// The indices remain empty until the list is sorted
|
||||||
SortableList(const label size, const T&);
|
SortableList(const label size, const T&);
|
||||||
|
|
||||||
//- Construct as copy.
|
//- Construct as copy
|
||||||
SortableList(const SortableList<T>&);
|
SortableList(const SortableList<T>&);
|
||||||
|
|
||||||
|
//- Construct from an initializer list, sorting immediately
|
||||||
|
SortableList(std::initializer_list<T>);
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Return the list of sorted indices. Updated every sort.
|
//- Return the list of sorted indices. Updated every sort
|
||||||
const labelList& indices() const
|
const labelList& indices() const
|
||||||
{
|
{
|
||||||
return indices_;
|
return indices_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return non-const access to the sorted indices. Updated every sort.
|
//- Return non-const access to the sorted indices. Updated every sort
|
||||||
labelList& indices()
|
labelList& indices()
|
||||||
{
|
{
|
||||||
return indices_;
|
return indices_;
|
||||||
@ -121,12 +124,14 @@ public:
|
|||||||
//- Assignment of all entries to the given value
|
//- Assignment of all entries to the given value
|
||||||
inline void operator=(const T&);
|
inline void operator=(const T&);
|
||||||
|
|
||||||
//- Assignment to UList operator. Takes linear time.
|
//- Assignment to UList operator. Takes linear time
|
||||||
inline void operator=(const UList<T>&);
|
inline void operator=(const UList<T>&);
|
||||||
|
|
||||||
//- Assignment operator. Takes linear time.
|
//- Assignment operator. Takes linear time
|
||||||
inline void operator=(const SortableList<T>&);
|
inline void operator=(const SortableList<T>&);
|
||||||
|
|
||||||
|
//- Assignment to an initializer list
|
||||||
|
void operator=(std::initializer_list<T>);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -244,6 +244,13 @@ Foam::Field<Type>::Field(const UList<Type>& list)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Type>
|
||||||
|
Foam::Field<Type>::Field(const UIndirectList<Type>& list)
|
||||||
|
:
|
||||||
|
List<Type>(list)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
#ifndef NoConstructFromTmp
|
#ifndef NoConstructFromTmp
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Foam::Field<Type>::Field(const tmp<Field<Type>>& tf)
|
Foam::Field<Type>::Field(const tmp<Field<Type>>& tf)
|
||||||
|
|||||||
@ -123,6 +123,9 @@ public:
|
|||||||
//- Construct as copy of a UList\<Type\>
|
//- Construct as copy of a UList\<Type\>
|
||||||
explicit Field(const UList<Type>&);
|
explicit Field(const UList<Type>&);
|
||||||
|
|
||||||
|
//- Construct as copy of a UIndirectList\<Type\>
|
||||||
|
explicit Field(const UIndirectList<Type>&);
|
||||||
|
|
||||||
//- Construct by transferring the List contents
|
//- Construct by transferring the List contents
|
||||||
explicit Field(const Xfer<List<Type>>&);
|
explicit Field(const Xfer<List<Type>>&);
|
||||||
|
|
||||||
|
|||||||
@ -249,7 +249,7 @@ public:
|
|||||||
inline scalar barycentric
|
inline scalar barycentric
|
||||||
(
|
(
|
||||||
const point& pt,
|
const point& pt,
|
||||||
List<scalar>& bary
|
FixedList<scalar, 4>& bary
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Return nearest point to p on tetrahedron. Is p itself
|
//- Return nearest point to p on tetrahedron. Is p itself
|
||||||
|
|||||||
@ -316,7 +316,7 @@ template<class Point, class PointRef>
|
|||||||
Foam::scalar Foam::tetrahedron<Point, PointRef>::barycentric
|
Foam::scalar Foam::tetrahedron<Point, PointRef>::barycentric
|
||||||
(
|
(
|
||||||
const point& pt,
|
const point& pt,
|
||||||
List<scalar>& bary
|
FixedList<scalar, 4>& bary
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
// Reference:
|
// Reference:
|
||||||
@ -346,8 +346,6 @@ Foam::scalar Foam::tetrahedron<Point, PointRef>::barycentric
|
|||||||
|
|
||||||
vector res = inv(t, detT) & (pt - d_);
|
vector res = inv(t, detT) & (pt - d_);
|
||||||
|
|
||||||
bary.setSize(4);
|
|
||||||
|
|
||||||
bary[0] = res.x();
|
bary[0] = res.x();
|
||||||
bary[1] = res.y();
|
bary[1] = res.y();
|
||||||
bary[2] = res.z();
|
bary[2] = res.z();
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -248,7 +248,7 @@ public:
|
|||||||
inline scalar barycentric
|
inline scalar barycentric
|
||||||
(
|
(
|
||||||
const point& pt,
|
const point& pt,
|
||||||
List<scalar>& bary
|
FixedList<scalar, 3>& bary
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Return point intersection with a ray.
|
//- Return point intersection with a ray.
|
||||||
|
|||||||
@ -280,7 +280,7 @@ template<class Point, class PointRef>
|
|||||||
Foam::scalar Foam::triangle<Point, PointRef>::barycentric
|
Foam::scalar Foam::triangle<Point, PointRef>::barycentric
|
||||||
(
|
(
|
||||||
const point& pt,
|
const point& pt,
|
||||||
List<scalar>& bary
|
FixedList<scalar, 3>& bary
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
// Reference:
|
// Reference:
|
||||||
@ -302,13 +302,11 @@ Foam::scalar Foam::triangle<Point, PointRef>::barycentric
|
|||||||
{
|
{
|
||||||
// Degenerate triangle, returning 1/3 barycentric coordinates.
|
// Degenerate triangle, returning 1/3 barycentric coordinates.
|
||||||
|
|
||||||
bary = List<scalar>(3, 1.0/3.0);
|
bary = FixedList<scalar, 3>(1.0/3.0);
|
||||||
|
|
||||||
return denom;
|
return denom;
|
||||||
}
|
}
|
||||||
|
|
||||||
bary.setSize(3);
|
|
||||||
|
|
||||||
bary[1] = (d11*d20 - d01*d21)/denom;
|
bary[1] = (d11*d20 - d01*d21)/denom;
|
||||||
bary[2] = (d00*d21 - d01*d20)/denom;
|
bary[2] = (d00*d21 - d01*d20)/denom;
|
||||||
bary[0] = 1.0 - bary[1] - bary[2];
|
bary[0] = 1.0 - bary[1] - bary[2];
|
||||||
|
|||||||
@ -166,7 +166,7 @@ void Foam::cellPointWeight::findTriangle
|
|||||||
{
|
{
|
||||||
const tetIndices& tetIs = faceTets[tetI];
|
const tetIndices& tetIs = faceTets[tetI];
|
||||||
|
|
||||||
List<scalar> triWeights(3);
|
FixedList<scalar, 3> triWeights;
|
||||||
|
|
||||||
// Barycentric coordinates of the position
|
// Barycentric coordinates of the position
|
||||||
scalar det = tetIs.faceTri(mesh).barycentric(position, triWeights);
|
scalar det = tetIs.faceTri(mesh).barycentric(position, triWeights);
|
||||||
@ -234,7 +234,7 @@ void Foam::cellPointWeight::findTriangle
|
|||||||
// determinant is suitable. If not, the return from barycentric
|
// determinant is suitable. If not, the return from barycentric
|
||||||
// to triWeights is safe.
|
// to triWeights is safe.
|
||||||
|
|
||||||
List<scalar> triWeights(3);
|
FixedList<scalar, 3> triWeights;
|
||||||
|
|
||||||
tetIs.faceTri(mesh).barycentric(position, triWeights);
|
tetIs.faceTri(mesh).barycentric(position, triWeights);
|
||||||
|
|
||||||
@ -260,9 +260,7 @@ Foam::cellPointWeight::cellPointWeight
|
|||||||
const label facei
|
const label facei
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
celli_(celli),
|
celli_(celli)
|
||||||
weights_(4),
|
|
||||||
faceVertices_(3)
|
|
||||||
{
|
{
|
||||||
if (facei < 0)
|
if (facei < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -58,10 +58,10 @@ protected:
|
|||||||
const label celli_;
|
const label celli_;
|
||||||
|
|
||||||
//- Weights applied to tet vertices
|
//- Weights applied to tet vertices
|
||||||
List<scalar> weights_;
|
FixedList<scalar, 4> weights_;
|
||||||
|
|
||||||
//- Face vertex indices
|
//- Face vertex indices
|
||||||
List<label> faceVertices_;
|
FixedList<label, 3> faceVertices_;
|
||||||
|
|
||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
@ -112,13 +112,13 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- Interpolation weights
|
//- Interpolation weights
|
||||||
inline const List<scalar>& weights() const
|
inline const FixedList<scalar, 4>& weights() const
|
||||||
{
|
{
|
||||||
return weights_;
|
return weights_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Interpolation addressing for points on face
|
//- Interpolation addressing for points on face
|
||||||
inline const List<label>& faceVertices() const
|
inline const FixedList<label, 3>& faceVertices() const
|
||||||
{
|
{
|
||||||
return faceVertices_;
|
return faceVertices_;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,8 +31,8 @@ inline Type Foam::interpolationCellPoint<Type>::interpolate
|
|||||||
const cellPointWeight& cpw
|
const cellPointWeight& cpw
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const List<scalar>& weights = cpw.weights();
|
const FixedList<scalar, 4>& weights = cpw.weights();
|
||||||
const List<label>& faceVertices = cpw.faceVertices();
|
const FixedList<label, 3>& faceVertices = cpw.faceVertices();
|
||||||
|
|
||||||
Type t = this->psi_[cpw.cell()]*weights[0];
|
Type t = this->psi_[cpw.cell()]*weights[0];
|
||||||
t += psip_[faceVertices[0]]*weights[1];
|
t += psip_[faceVertices[0]]*weights[1];
|
||||||
@ -79,7 +79,7 @@ inline Type Foam::interpolationCellPoint<Type>::interpolate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<scalar> weights;
|
FixedList<scalar, 4> weights;
|
||||||
|
|
||||||
tetIs.tet(this->pMesh_).barycentric(position, weights);
|
tetIs.tet(this->pMesh_).barycentric(position, weights);
|
||||||
|
|
||||||
|
|||||||
@ -31,8 +31,8 @@ inline Type Foam::interpolationCellPointWallModified<Type>::interpolate
|
|||||||
const cellPointWeightWallModified& cpw
|
const cellPointWeightWallModified& cpw
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const List<scalar>& weights = cpw.weights();
|
const FixedList<scalar, 4>& weights = cpw.weights();
|
||||||
const List<label>& faceVertices = cpw.faceVertices();
|
const FixedList<label, 3>& faceVertices = cpw.faceVertices();
|
||||||
|
|
||||||
Type t = this->psi_[cpw.cell()]*weights[0];
|
Type t = this->psi_[cpw.cell()]*weights[0];
|
||||||
t += this->psip_[faceVertices[0]]*weights[1];
|
t += this->psip_[faceVertices[0]]*weights[1];
|
||||||
|
|||||||
@ -55,9 +55,7 @@ Foam::AveragingMethods::Dual<Type>::Dual
|
|||||||
volumeCell_(mesh.V()),
|
volumeCell_(mesh.V()),
|
||||||
volumeDual_(mesh.nPoints(), 0.0),
|
volumeDual_(mesh.nPoints(), 0.0),
|
||||||
dataCell_(FieldField<Field, Type>::operator[](0)),
|
dataCell_(FieldField<Field, Type>::operator[](0)),
|
||||||
dataDual_(FieldField<Field, Type>::operator[](1)),
|
dataDual_(FieldField<Field, Type>::operator[](1))
|
||||||
tetVertices_(3),
|
|
||||||
tetCoordinates_(4)
|
|
||||||
{
|
{
|
||||||
forAll(this->mesh_.C(), celli)
|
forAll(this->mesh_.C(), celli)
|
||||||
{
|
{
|
||||||
@ -123,7 +121,10 @@ void Foam::AveragingMethods::Dual<Type>::tetGeometry
|
|||||||
|
|
||||||
tetIs.tet(this->mesh_).barycentric(position, tetCoordinates_);
|
tetIs.tet(this->mesh_).barycentric(position, tetCoordinates_);
|
||||||
|
|
||||||
tetCoordinates_ = max(tetCoordinates_, scalar(0));
|
forAll(tetCoordinates_, i)
|
||||||
|
{
|
||||||
|
tetCoordinates_[i] = max(tetCoordinates_[i], scalar(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -94,10 +94,10 @@ private:
|
|||||||
Field<Type>& dataDual_;
|
Field<Type>& dataDual_;
|
||||||
|
|
||||||
//- Tet vertex labels
|
//- Tet vertex labels
|
||||||
mutable List<label> tetVertices_;
|
mutable FixedList<label, 3> tetVertices_;
|
||||||
|
|
||||||
//- Tet barycentric coordinates
|
//- Tet barycentric coordinates
|
||||||
mutable List<scalar> tetCoordinates_;
|
mutable FixedList<scalar, 4> tetCoordinates_;
|
||||||
|
|
||||||
|
|
||||||
//- Private static member functions
|
//- Private static member functions
|
||||||
|
|||||||
@ -340,7 +340,7 @@ Foam::vector Foam::PackingModels::Implicit<CloudType>::velocityCorrection
|
|||||||
const label celli = p.cell();
|
const label celli = p.cell();
|
||||||
const label facei = p.tetFace();
|
const label facei = p.tetFace();
|
||||||
const tetIndices tetIs(celli, facei, p.tetPt(), mesh);
|
const tetIndices tetIs(celli, facei, p.tetPt(), mesh);
|
||||||
List<scalar> tetCoordinates(4);
|
FixedList<scalar, 4> tetCoordinates;
|
||||||
tetIs.tet(mesh).barycentric(p.position(), tetCoordinates);
|
tetIs.tet(mesh).barycentric(p.position(), tetCoordinates);
|
||||||
|
|
||||||
// cell velocity
|
// cell velocity
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -116,7 +116,7 @@ point offsetSurface::operator()
|
|||||||
const triSurface& base = baseSurfPtr_();
|
const triSurface& base = baseSurfPtr_();
|
||||||
const triPointRef baseTri(base[triI].tri(base.points()));
|
const triPointRef baseTri(base[triI].tri(base.points()));
|
||||||
|
|
||||||
List<scalar> bary;
|
FixedList<scalar, 3> bary;
|
||||||
baseTri.barycentric(surfacePoint, bary);
|
baseTri.barycentric(surfacePoint, bary);
|
||||||
|
|
||||||
const triSurface& offset = offsetSurfPtr_();
|
const triSurface& offset = offsetSurfPtr_();
|
||||||
@ -135,8 +135,8 @@ point offsetSurface::operator()
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
//- Either return interpolatedPoint or re-project onto surface (since
|
// Either return interpolatedPoint or re-project onto surface (since
|
||||||
// snapping might not have do so exactly)
|
// snapping might not have do so exactly)
|
||||||
|
|
||||||
if (project_)
|
if (project_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -1240,7 +1240,7 @@ void Foam::isoSurface::trimToBox
|
|||||||
dynInterpolatedOldPoints.append(oldPoints);
|
dynInterpolatedOldPoints.append(oldPoints);
|
||||||
|
|
||||||
triPointRef tri(oldTriPoints, oldPoints);
|
triPointRef tri(oldTriPoints, oldPoints);
|
||||||
scalarList bary;
|
FixedList<scalar, 3> bary;
|
||||||
tri.barycentric(pt, bary);
|
tri.barycentric(pt, bary);
|
||||||
FixedList<scalar, 3> weights;
|
FixedList<scalar, 3> weights;
|
||||||
weights[0] = bary[0];
|
weights[0] = bary[0];
|
||||||
|
|||||||
Reference in New Issue
Block a user