[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Freepooma-devel] [PATCH] Canonicalize handling of external/internal gua
From: |
Richard Guenther |
Subject: |
[Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards |
Date: |
Fri, 1 Apr 2005 15:25:55 +0200 (CEST) |
Hi!
This patch canonicalizes the handling of hasInternalGuards_m and
hasExternalGuards_m in the various grid layouts. It also disables
optimizing away of internal guards if the partitioner will create
at most one patch.
One could question, if we should disable internal guards if the
domain is empty, as we do for external guards. But I even think
of disabling this "optimization". The user should really get
what he asked for, even if it doesn't make much sense in some
corner case.
This also magically fixes the CIC problems, though I still think
the internal guards checking in CIC is not really correct. But
note you need an updated CVS repository for this, as I checked in
a trivial (but necessary) fix to FieldStencilSimple::make a few
minutes ago.
The patch passes regression-testing, but due to our bad testing
coverage the real problems may stay hidden. Maybe someone has
some input on the reasons of all the special casing in the grid
layouts?
Thanks,
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
Index: src/Layout/GridLayout.cpp
===================================================================
RCS file: /cvsroot/freepooma/freepooma/src/Layout/GridLayout.cpp,v
retrieving revision 1.93
diff -u -r1.93 GridLayout.cpp
--- src/Layout/GridLayout.cpp 10 Nov 2004 22:02:10 -0000 1.93
+++ src/Layout/GridLayout.cpp 1 Apr 2005 11:59:47 -0000
@@ -142,7 +142,7 @@
// Examine the partitioner for info about guard cells. Change our
// domains if necessary, and save guard cell info for later.
- this->hasInternalGuards_m = (gpar.hasInternalGuards() && gpar.maxSize() > 1);
+ this->hasInternalGuards_m = gpar.hasInternalGuards();
if (this->hasInternalGuards_m)
{
this->internalGuards_m = gpar.internalGuards();
Index: src/Layout/SparseTileLayout.cpp
===================================================================
RCS file: /cvsroot/freepooma/freepooma/src/Layout/SparseTileLayout.cpp,v
retrieving revision 1.31
diff -u -r1.31 SparseTileLayout.cpp
--- src/Layout/SparseTileLayout.cpp 1 Nov 2004 18:16:54 -0000 1.31
+++ src/Layout/SparseTileLayout.cpp 1 Apr 2005 11:59:47 -0000
@@ -134,13 +134,13 @@
{
this->blocks_m = Loc<Dim>();
// Figure out if we have guards to worry about.
- if (gpar.hasInternalGuards() && gpar.maxSize() > 1)
+ if (gpar.hasInternalGuards())
{
this->hasInternalGuards_m = true;
this->internalGuards_m = gpar.internalGuards();
}
- if (gpar.hasExternalGuards())
+ if (gpar.hasExternalGuards() && ! bbox.empty())
{
this->hasExternalGuards_m = true;
this->externalGuards_m = gpar.externalGuards();
Index: src/Layout/UniformGridLayout.cpp
===================================================================
RCS file: /cvsroot/freepooma/freepooma/src/Layout/UniformGridLayout.cpp,v
retrieving revision 1.43
diff -u -r1.43 UniformGridLayout.cpp
--- src/Layout/UniformGridLayout.cpp 1 Nov 2004 18:16:54 -0000 1.43
+++ src/Layout/UniformGridLayout.cpp 1 Apr 2005 11:59:47 -0000
@@ -78,13 +78,13 @@
{
// Figure out if we have guards to worry about.
- if (gpar.hasInternalGuards() && gpar.maxSize() > 1)
+ if (gpar.hasInternalGuards())
{
this->hasInternalGuards_m = true;
this->internalGuards_m = gpar.internalGuards();
}
- if (gpar.hasExternalGuards())
+ if (gpar.hasExternalGuards() && ! gdom.empty())
{
this->hasExternalGuards_m = true;
this->externalGuards_m = gpar.externalGuards();
- [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards,
Richard Guenther <=
- Re: [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards, Richard Guenther, 2005/04/11
- Re: [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards, Richard Guenther, 2005/04/11
- Re: [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards, Richard Guenther, 2005/04/11
- ReRe: [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards, Roman Krylov, 2005/04/11
- Re: ReRe: [Freepooma-devel] [PATCH] Canonicalize handling of external/internal guards, Richard Guenther, 2005/04/11
- [Freepooma-devel] another stupid thought, Roman Krylov, 2005/04/11
- Re: [Freepooma-devel] another stupid thought, Richard Guenther, 2005/04/11
- Re: [Freepooma-devel] another stupid thought, Roman Krylov, 2005/04/11
RE: [Freepooma-devel] [PATCH] Canonicalize handling ofexternal/internal guards, Julian C. Cummings, 2005/04/11