#include "LayoutData.H"
#include "Interval.H"
#include "FArrayBox.H"
#include "DisjointBoxLayout.H"
#include "Copier.H"
#include "SPMD.H"
#include "memtrack.H"
#include "NamespaceHeader.H"
#include "NamespaceFooter.H"
#include "BoxLayoutDataI.H"
Go to the source code of this file.
Classes | |
class | DataFactory< T > |
Factory object to data members of a BoxLayoutData container. More... | |
class | DefaultDataFactory< T > |
Factory object to data members of a BoxLayoutData container. More... | |
class | FABAliasDataFactory |
class | AliasDataFactory< T > |
class | LDOperator< T > |
class | BoxLayoutData< T > |
Data on a BoxLayout. More... | |
Functions | |
Real | norm (const BoxLayoutData< FArrayBox > &A, const Interval &interval, const int &p=2) |
Variables | |
int | LinearizationTest |
Real norm | ( | const BoxLayoutData< FArrayBox > & | A, | |
const Interval & | interval, | |||
const int & | p = 2 | |||
) |
not actually L-p norms, since it doesn't take into account the dx of the system. A user can take that into account or not.
For p != 0, returns pth root of sum of pth powers over all points in all fabs and all components in the interval:
( sum [ |A[i][pt,var]|^p : FArrayBox A[i], point pt in A[i].box(), var in interval ] )^(1/p)
To turn into an L-p norm, one needs to multiply this by dx^(SpaceDim/p).
For p == 0, returns global max over all points in all fabs and all components in the interval:
max [ |A[i][pt,var]| : FArrayBox A[i], point pt in A[i].box(), var in interval ]
Some people don't like that this norm is not normalized based on number of points in A. Normalization is your problem.
Referenced by IFData< dim >::reduceGradNormal(), IFData< dim >::setNormal(), RelaxSolver< T >::solve(), and BiCGStabSolver< T >::solve().
Referenced by LDOperator< FArrayBox >::op().