Loading...
Searching...
No Matches
levelSetOctreeKernel.hpp
1/*---------------------------------------------------------------------------*\
2 *
3 * bitpit
4 *
5 * Copyright (C) 2015-2021 OPTIMAD engineering Srl
6 *
7 * -------------------------------------------------------------------------
8 * License
9 * This file is part of bitpit.
10 *
11 * bitpit is free software: you can redistribute it and/or modify it
12 * under the terms of the GNU Lesser General Public License v3 (LGPL)
13 * as published by the Free Software Foundation.
14 *
15 * bitpit is distributed in the hope that it will be useful, but WITHOUT
16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
18 * License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with bitpit. If not, see <http://www.gnu.org/licenses/>.
22 *
23\*---------------------------------------------------------------------------*/
24
25# ifndef __BITPIT_LEVELSET_OCTREE_KERNEL_HPP__
26# define __BITPIT_LEVELSET_OCTREE_KERNEL_HPP__
27
28#include "levelSetKernel.hpp"
29
30#include "bitpit_voloctree.hpp"
31
32namespace bitpit{
33
35
36 private:
37 std::size_t m_cellCentroidCacheId;
38
39 std::vector<double> m_octantTangentRadii ;
40 std::vector<double> m_octantBoundingRadii ;
42 public:
43 template<typename value_t>
44 using CellSparseCacheContainer = std::unordered_map<long, value_t>;
45 template<typename value_t>
47
49
50 VolOctree * getMesh() const override;
51
52 double getOctantTangentRadius(int level) const;
53 double getOctantBoundingRadius(int level) const;
54
55 std::array<double, 3> computeCellCentroid(long) const override;
56 double computeCellTangentRadius(long) const override;
57 double computeCellBoundingRadius(long) const override;
58
59};
60
61// Typdefs for compatibility with older versions
63
64}
65
66// Include template implementations
67#include "levelSetOctreeKernel.tpp"
68
69#endif
Base class for defining kernels that need to cache data.
Implements LevelSetKernel for octree meshes.
double computeCellBoundingRadius(long) const override
double getOctantTangentRadius(int level) const
LevelSetOctreeKernel(VolOctree &patch, LevelSetFillIn fillIn)
std::array< double, 3 > computeCellCentroid(long) const override
double getOctantBoundingRadius(int level) const
VolOctree * getMesh() const override
double computeCellTangentRadius(long) const override
The VolOctree defines a Octree patch.
Definition voloctree.hpp:37
--- layout: doxygen_footer ---