MAST
integrated_force_output.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2019 Manav Bhatia
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __mast__integrated_force_output_h__
21 #define __mast__integrated_force_output_h__
22 
23 // MAST inclues
25 
26 
27 namespace MAST {
28 
31 
32  public:
33 
35 
36  virtual ~IntegratedForceOutput();
37 
41  virtual void
42  set_elem_data(unsigned int dim,
43  const libMesh::Elem& ref_elem,
44  MAST::GeomElem& elem) const {}
45 
49  virtual void init(const MAST::GeomElem& elem);
50 
59  virtual void zero_for_analysis();
60 
61 
67  virtual void zero_for_sensitivity();
68 
77  virtual Real output_for_elem() {
78  libmesh_error(); // should not get called
79  }
80 
84  virtual Real output_total();
85 
94  libmesh_error(); // not yet implemented
95  }
96 
105 
106 
115  virtual void output_derivative_for_elem(RealVectorX& dq_dX);
116 
117 
127  virtual void evaluate();
128 
135  virtual void evaluate_sensitivity(const MAST::FunctionBase& p);
136 
144  libmesh_error(); // not yet implemented
145  }
146 
153  virtual void
156  libmesh_error(); // not yet implemented
157  }
158 
159  protected:
160 
165 
166 
171 
176  };
177 }
178 
179 
180 
181 #endif // __mast__integrated_force_output_h__
virtual void evaluate_shape_sensitivity(const MAST::FunctionBase &f)
this evaluates all relevant shape sensitivity components on the element.
virtual Real output_sensitivity_total(const MAST::FunctionBase &p)
virtual void set_elem_data(unsigned int dim, const libMesh::Elem &ref_elem, MAST::GeomElem &elem) const
virtual function, nothing to be done for fluids
Real _force
integrated value of the force
This provides the base class for definitin of element level contribution of output quantity in an ana...
libMesh::Real Real
virtual void zero_for_sensitivity()
zeroes the output quantity values stored inside this object so that assembly process can begin...
virtual void output_derivative_for_elem(RealVectorX &dq_dX)
returns the output quantity derivative with respect to state vector in dq_dX.
virtual Real output_sensitivity_for_elem(const MAST::FunctionBase &p)
Matrix< Real, Dynamic, 1 > RealVectorX
virtual void evaluate_sensitivity(const MAST::FunctionBase &p)
this evaluates all relevant sensitivity components on the element.
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
Definition: geom_elem.h:59
virtual void init(const MAST::GeomElem &elem)
initialize for the element.
Real _force_sens
integrated value of the sensitivity of force
IntegratedForceOutput(const RealVectorX &nvec)
RealVectorX _n_vec
vector along which the force is measured
virtual void evaluate_topology_sensitivity(const MAST::FunctionBase &f, const MAST::FieldFunction< RealVectorX > &vel)
this evaluates all relevant topological sensitivity components on the element.
virtual void zero_for_analysis()
zeroes the output quantity values stored inside this object so that assembly process can begin...
virtual void evaluate()
this is the abstract interface to be implemented by derived classes.