/usr/include/dolfin/refinement/LocalMeshCoarsening.h is in libdolfin1.0-dev 1.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | // Copyright (C) 2006 Johan Hoffman
//
// This file is part of DOLFIN.
//
// DOLFIN is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// DOLFIN is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
//
// First added: 2006-11-01
#ifndef __LOCAL_MESH_COARSENING_H
#define __LOCAL_MESH_COARSENING_H
#include <vector>
namespace dolfin
{
class Mesh;
class Edge;
class Vertex;
class MeshEditor;
template <typename T> class MeshFunction;
/// This class implements local mesh coarsening for different mesh types.
class LocalMeshCoarsening
{
public:
/// Coarsen simplicial mesh locally by edge collapse
static void coarsen_mesh_by_edge_collapse(Mesh& mesh,
MeshFunction<bool>& cell_marker,
bool coarsen_boundary = false);
private:
/// Check that edge collapse is ok
static bool coarsen_mesh_ok(Mesh& mesh, uint edge_index, uint* edge_vertex,
MeshFunction<bool>& vertex_forbidden);
/// Collapse edge by node deletion
static void collapse_edge(Mesh& mesh, Edge& edge,
Vertex& vertex_to_remove,
MeshFunction<bool>& cell_to_remove,
std::vector<int>& old2new_vertex,
std::vector<int>& old2new_cell,
MeshEditor& editor,
uint& current_cell);
/// Coarsen simplicial cell by edge collapse
static bool coarsen_cell(Mesh& mesh, Mesh& coarse_mesh,
int cell_id,
std::vector<int>& old2new_vertex,
std::vector<int>& old2new_cell,
bool coarsen_boundary = false);
};
}
#endif
|