PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
DM.hh
Go to the documentation of this file.
1 /* Copyright (C) 2015 PISM Authors
2  *
3  * This file is part of PISM.
4  *
5  * PISM is free software; you can redistribute it and/or modify it under the
6  * terms of the GNU General Public License as published by the Free Software
7  * Foundation; either version 3 of the License, or (at your option) any later
8  * version.
9  *
10  * PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with PISM; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef _DM_H_
21 #define _DM_H_
22 
23 #include <petscdmda.h>
24 
25 #include "pism/util/Wrapper.hh"
26 
27 namespace pism {
28 
29 //! Wrappers for some PETSc objects (these wrappers simplify memory management).
30 namespace petsc {
31 /** Wrapper around PETSc's DM. Simplifies memory management.
32  *
33  * The constructor takes ownership of the dm argument passed to it.
34  *
35  * The destructor call DMDestroy().
36  */
37 class DM : public Wrapper< ::DM > {
38 public:
39  DM(::DM dm);
40  DM();
41  ~DM();
42 };
43 } // end of namespace petsc
44 } // end of namespace pism
45 
46 #endif /* _DM_H_ */