diff_qoi.h
Go to the documentation of this file.
1 
2 // The libMesh Finite Element Library.
3 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
4 
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 
19 
20 
21 #ifndef LIBMESH_DIFF_QOI_H
22 #define LIBMESH_DIFF_QOI_H
23 
24 // Local Includes
25 #include "libmesh/diff_context.h"
26 #include "libmesh/qoi_set.h"
27 #include "libmesh/auto_ptr.h"
28 #include "libmesh/parallel.h"
29 
30 // C++ includes
31 
32 namespace libMesh
33 {
34 
47 // ------------------------------------------------------------
48 // DifferentiableQoI class definition
49 
51 {
52 public:
53 
59 
63  virtual ~DifferentiableQoI () {}
64 
69  virtual void init_qoi( std::vector<Number>& /*sys_qoi*/){}
70 
75  virtual void clear_qoi () {}
76 
84 
92 
100 
108  virtual void element_qoi (DiffContext&,
109  const QoISet&)
110  {}
111 
121  const QoISet&)
122  {}
123 
131  virtual void side_qoi (DiffContext&,
132  const QoISet&)
133  {}
134 
144  const QoISet&)
145  {}
146 
153  virtual void init_context(DiffContext &) {}
154 
158  virtual AutoPtr<DifferentiableQoI> clone() =0;
159 
163  virtual void thread_join( std::vector<Number>& qoi, const std::vector<Number>& other_qoi,
164  const QoISet& qoi_indices );
165 
170  virtual void parallel_op(const Parallel::Communicator &communicator,
171  std::vector<Number>& sys_qoi, std::vector<Number>& local_qoi,
172  const QoISet& qoi_indices );
173 };
174 
175 } // namespace libMesh
176 
177 
178 #endif // LIBMESH_DIFF_QOI_H

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:04 UTC

Hosted By:
SourceForge.net Logo