GRINS-0.7.0
parsed_boundary_qoi.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2016 Paul T. Bauman, Roy H. Stogner
7 // Copyright (C) 2010-2013 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 
26 #ifndef GRINS_PARSED_BOUNDARY_QOI_H
27 #define GRINS_PARSED_BOUNDARY_QOI_H
28 
29 // GRINS
30 #include "grins/qoi_base.h"
32 
33 // libMesh
34 #include "libmesh/fem_function_base.h"
35 
36 namespace GRINS
37 {
39 
43  class ParsedBoundaryQoI : public QoIBase
44  {
45  public:
46 
48 
50  ParsedBoundaryQoI( const std::string& qoi_name );
51 
52  virtual ~ParsedBoundaryQoI();
53 
55  virtual QoIBase* clone() const;
56 
57  virtual bool assemble_on_interior() const;
58 
59  virtual bool assemble_on_sides() const;
60 
62  virtual void init( const GetPot& input,
63  const MultiphysicsSystem& system,
64  unsigned int qoi_num );
65 
66  virtual void init_context( AssemblyContext& context );
67 
69  virtual void side_qoi( AssemblyContext& context,
70  const unsigned int qoi_index );
71 
73  virtual void side_qoi_derivative( AssemblyContext& context,
74  const unsigned int qoi_index );
75 
76  protected:
77 
78  libMesh::UniquePtr<libMesh::FEMFunctionBase<libMesh::Number> >
80 
81 
83  std::set<libMesh::boundary_id_type> _bc_ids;
84 
86  ParsedBoundaryQoI(const ParsedBoundaryQoI& original);
87 
88  private:
91 
92  };
93 
94  inline
96  {
97  return false;
98  }
99 
100  inline
102  {
103  return true;
104  }
105 }
106 #endif //GRINS_PARSED_BOUNDARY_QOI_H
virtual void init_context(AssemblyContext &context)
ParsedBoundaryQoI()
User never call default constructor.
virtual bool assemble_on_sides() const
Does the QoI need a domain boundary assembly loop?
virtual QoIBase * clone() const
Required to provide clone (deep-copy) for adding QoI object to libMesh objects.
GRINS namespace.
Parsed Boundary QoI.
std::set< libMesh::boundary_id_type > _bc_ids
List of boundary ids on which we want to compute this QoI.
virtual void init(const GetPot &input, const MultiphysicsSystem &system, unsigned int qoi_num)
Initialize local variables.
virtual void side_qoi_derivative(AssemblyContext &context, const unsigned int qoi_index)
Compute the qoi derivative with respect to the solution.
Interface with libMesh for solving Multiphysics problems.
libMesh::UniquePtr< libMesh::FEMFunctionBase< libMesh::Number > > qoi_functional
virtual void side_qoi(AssemblyContext &context, const unsigned int qoi_index)
Compute the qoi value.
virtual bool assemble_on_interior() const
Does the QoI need an element interior assembly loop?

Generated on Thu Jun 2 2016 21:52:28 for GRINS-0.7.0 by  doxygen 1.8.10