5#ifndef GRUN_KOMPONENTE_H
6#define GRUN_KOMPONENTE_H
12class ZusammenhangsKomponente {
16 ~ZusammenhangsKomponente() {
delete[] marker; };
24 unsigned long findAnicht(
unsigned long iNow,
unsigned long& iNow_mapping);
31 IndexDimension StartSearchComponent(
unsigned long iNow) {
33 maxIndex = grid->getIndexOfTable(iNow);
40 IndexDimension getMinIndex() {
return minIndex; };
42 IndexDimension getMaxIndex() {
return maxIndex; };
44 Depth getDepth() {
return T; };
47 virtual void recursiveMarkArbeite(IndexDimension indexNow,
unsigned long iNow);
52 unsigned long secondTableLength;
54 IndexDimension maxIndex;
55 IndexDimension minIndex;
61class ZusammenhangsKomponente_Neumann :
public ZusammenhangsKomponente {
63 ZusammenhangsKomponente_Neumann(
AdaptiveSparseGrid_Base *grid_, Depth T_) : ZusammenhangsKomponente(grid_, T_) {};
65 inline void recursiveMarkArbeite(IndexDimension indexNow,
unsigned long iNow) {
66 marker[iNow] = arbeite;
72 IndexDimension J = indexNow.nextFive_Neumann(&mc, T, &val);
74 unsigned long indexOfData;
75 if (grid->occupied(indexOfData, J)) {
76 if (grid->workonindex(indexOfData)) {
78 Marker m = marker[indexOfData];
81 maxIndex = IndexDimension::Maximum(maxIndex, J);
82 minIndex = IndexDimension::Minimum(minIndex, J);
83 recursiveMarkArbeite(J, indexOfData);
86 maxIndex = IndexDimension::Maximum(maxIndex, J);
87 minIndex = IndexDimension::Minimum(minIndex, J);
94 maxIndex = IndexDimension::Maximum(maxIndex, indexNow);
95 minIndex = IndexDimension::Minimum(minIndex, indexNow);
98 inline void markArbeite(
unsigned long iNow) {
99 marker[iNow] = arbeite;
Definition sparseGrid.h:86