/usr/include/rheolef/form_option_type.h is in librheolef-dev 6.6-1build2.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #ifndef _RHEOLEF_FORM_OPTION_TYPE_H
#define _RHEOLEF_FORM_OPTION_TYPE_H
///
/// This file is part of Rheolef.
///
/// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
///
/// Rheolef is free software; you can redistribute it and/or modify
/// it under the terms of the GNU General Public License as published by
/// the Free Software Foundation; either version 2 of the License, or
/// (at your option) any later version.
///
/// Rheolef 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 General Public License for more details.
///
/// You should have received a copy of the GNU General Public License
/// along with Rheolef; if not, write to the Free Software
/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
///
/// =========================================================================
#include "rheolef/quadrature_option_type.h"
namespace rheolef {
/*Class:doc
NAME: @code{form_option_type} - send options to the integrate function
@findex integrate
DESCRIPTION:
This class is used to send options to the integrate function
when building a form.
It allows to set the quadrature formulae that is used
for numerical integration @pxref{quadrature_option_type class}
and two boolean flags.
FLAGS:
@table @code
@item ignore_sys_coord
@cindex axisymmetric geometry
This flag has effects only for axisymmetric coordinate systems.
When set, it omits the @code{r} weight in the @code{r dr dz} measure
during the numerical integration performed the @code{integrate} function.
This feature is usefull for computing the stream function
in the axisymmetric case.
@item lump
@cindex mass lumping
This flag, when set, perfoms a @emph{mass lumping procedure}
on the matrix at the element level:
@example
a(i,i) := sum(j) a(i,j)
@end example
The resulting matrix is diagonal.
This feature is usefull for computing a diagonal approximation
of the mass matrix for the continuous @code{P1} element.
@item invert
@cindex local matrix inversion
This flag, when set, perfoms a @emph{local inversion}
on the matrix at the element level:
@example
a := inv(a)
@end example
This procedure is allowed only when the global matrix
is block diagonal, e.g. for discontinuous or bubble approximations.
This property is true when basis functions have a compact support
inside exactly one element.
@end table
DEFAULT FLAG VALUES:
All flags are set to false by default.
End: */
//<doc:
struct form_option_type : quadrature_option_type {
// allocators:
form_option_type();
form_option_type (const form_option_type& fopt);
form_option_type (const quadrature_option_type& qopt);
form_option_type& operator= (const form_option_type& fopt);
operator quadrature_option_type() const { return *this; }
// data:
bool ignore_sys_coord, lump, invert;
};
//>doc:
inline
form_option_type::form_option_type()
: quadrature_option_type(),
ignore_sys_coord (false),
lump (false),
invert (false)
{
}
inline
form_option_type::form_option_type (const quadrature_option_type& qopt)
: quadrature_option_type(qopt),
ignore_sys_coord (false),
lump (false),
invert (false)
{
}
inline
form_option_type::form_option_type (const form_option_type& fopt)
: quadrature_option_type(fopt),
ignore_sys_coord (fopt.ignore_sys_coord),
lump (fopt.lump),
invert (fopt.invert)
{
}
inline
form_option_type&
form_option_type::operator= (const form_option_type& fopt)
{
quadrature_option_type::operator= (fopt);
ignore_sys_coord = fopt.ignore_sys_coord;
lump = fopt.lump;
invert = fopt.invert;
return *this;
}
}// namespace rheolef
#endif // _RHEOLEF_FORM_OPTION_TYPE_H
|