aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/ggf.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetLib/src/ggf.cc')
-rw-r--r--Carpet/CarpetLib/src/ggf.cc133
1 files changed, 58 insertions, 75 deletions
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc
index ae733aa35..fcc9e546b 100644
--- a/Carpet/CarpetLib/src/ggf.cc
+++ b/Carpet/CarpetLib/src/ggf.cc
@@ -1,23 +1,4 @@
-/***************************************************************************
- ggf.cc - Generic Grid Function
- grid function without type information
- -------------------
- begin : Sun Jun 11 2000
- copyright : (C) 2000 by Erik Schnetter
- email : schnetter@astro.psu.edu
-
- $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.19 2002/09/25 15:49:16 schnetter Exp $
-
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program 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. *
- * *
- ***************************************************************************/
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.20 2003/01/03 15:49:36 schnetter Exp $
#include <assert.h>
#include <stdlib.h>
@@ -39,10 +20,12 @@ using namespace std;
// Constructors
template<int D>
-generic_gf<D>::generic_gf (const string name, th& t, dh<D>& d,
- const int tmin, const int tmax,
- const int prolongation_order_time)
- : dimgeneric_gf(name, t, tmin, tmax, prolongation_order_time),
+ggf<D>::ggf (const string name, th<D>& t, dh<D>& d,
+ const int tmin, const int tmax,
+ const int prolongation_order_time)
+ : name(name), t(t),
+ tmin(tmin), tmax(tmax),
+ prolongation_order_time(prolongation_order_time),
h(d.h), d(d),
storage(tmax-tmin+1)
{
@@ -55,13 +38,13 @@ generic_gf<D>::generic_gf (const string name, th& t, dh<D>& d,
// Destructors
template<int D>
-generic_gf<D>::~generic_gf () {
+ggf<D>::~ggf () {
d.remove(this);
}
// Comparison
template<int D>
-bool generic_gf<D>::operator== (const generic_gf<D>& f) const {
+bool ggf<D>::operator== (const ggf<D>& f) const {
return this == &f;
}
@@ -69,7 +52,7 @@ bool generic_gf<D>::operator== (const generic_gf<D>& f) const {
// Modifiers
template<int D>
-void generic_gf<D>::recompose () {
+void ggf<D>::recompose () {
// Retain storage that might be needed
fdata oldstorage = storage;
@@ -159,11 +142,11 @@ void generic_gf<D>::recompose () {
// Cycle the time levels by rotating the data sets
template<int D>
-void generic_gf<D>::cycle (int rl, int c, int ml) {
+void ggf<D>::cycle (int rl, int c, int ml) {
assert (rl>=0 && rl<h.reflevels());
assert (c>=0 && c<h.components(rl));
assert (ml>=0 && ml<h.mglevels(rl,c));
- generic_data<D>* tmpdata = storage[tmin-tmin][rl][c][ml];
+ gdata<D>* tmpdata = storage[tmin-tmin][rl][c][ml];
for (int tl=tmin; tl<=tmax-1; ++tl) {
storage[tl-tmin][rl][c][ml] = storage[tl+1-tmin][rl][c][ml];
}
@@ -172,7 +155,7 @@ void generic_gf<D>::cycle (int rl, int c, int ml) {
// Flip the time levels by exchanging the data sets
template<int D>
-void generic_gf<D>::flip (int rl, int c, int ml) {
+void ggf<D>::flip (int rl, int c, int ml) {
assert (rl>=0 && rl<h.reflevels());
assert (c>=0 && c<h.components(rl));
assert (ml>=0 && ml<h.mglevels(rl,c));
@@ -180,7 +163,7 @@ void generic_gf<D>::flip (int rl, int c, int ml) {
const int tl1 = tmin + t;
const int tl2 = tmax - t;
assert (tl1 < tl2);
- generic_data<D>* tmpdata = storage[tl1-tmin][rl][c][ml];
+ gdata<D>* tmpdata = storage[tl1-tmin][rl][c][ml];
storage[tl1-tmin][rl][c][ml] = storage[tl2-tmin][rl][c][ml];
storage[tl2-tmin][rl][c][ml] = tmpdata;
}
@@ -188,7 +171,7 @@ void generic_gf<D>::flip (int rl, int c, int ml) {
// Copy data from current time level to all previous levels
template<int D>
-void generic_gf<D>::copytoprevs (int rl, int c, int ml) {
+void ggf<D>::copytoprevs (int rl, int c, int ml) {
assert (rl>=0 && rl<h.reflevels());
assert (c>=0 && c<h.components(rl));
assert (ml>=0 && ml<h.mglevels(rl,c));
@@ -206,10 +189,10 @@ void generic_gf<D>::copytoprevs (int rl, int c, int ml) {
// Copy a region
template<int D>
-void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
- const ibbox dh<D>::dboxes::* recv_list,
- int tl2, int rl2, int ml2,
- const ibbox dh<D>::dboxes::* send_list)
+void ggf<D>::copycat (int tl1, int rl1, int c1, int ml1,
+ const ibbox dh<D>::dboxes::* recv_list,
+ int tl2, int rl2, int ml2,
+ const ibbox dh<D>::dboxes::* send_list)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -230,10 +213,10 @@ void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
// Copy regions
template<int D>
-void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
- const iblist dh<D>::dboxes::* recv_list,
- int tl2, int rl2, int ml2,
- const iblist dh<D>::dboxes::* send_list)
+void ggf<D>::copycat (int tl1, int rl1, int c1, int ml1,
+ const iblist dh<D>::dboxes::* recv_list,
+ int tl2, int rl2, int ml2,
+ const iblist dh<D>::dboxes::* send_list)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -258,10 +241,10 @@ void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
// Copy regions
template<int D>
-void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
- const iblistvect dh<D>::dboxes::* recv_listvect,
- int tl2, int rl2, int ml2,
- const iblistvect dh<D>::dboxes::* send_listvect)
+void ggf<D>::copycat (int tl1, int rl1, int c1, int ml1,
+ const iblistvect dh<D>::dboxes::* recv_listvect,
+ int tl2, int rl2, int ml2,
+ const iblistvect dh<D>::dboxes::* send_listvect)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -288,11 +271,11 @@ void generic_gf<D>::copycat (int tl1, int rl1, int c1, int ml1,
// Interpolate a region
template<int D>
-void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
- const ibbox dh<D>::dboxes::* recv_list,
- const vector<int> tl2s, int rl2, int ml2,
- const ibbox dh<D>::dboxes::* send_list,
- CCTK_REAL time)
+void ggf<D>::intercat (int tl1, int rl1, int c1, int ml1,
+ const ibbox dh<D>::dboxes::* recv_list,
+ const vector<int> tl2s, int rl2, int ml2,
+ const ibbox dh<D>::dboxes::* send_list,
+ CCTK_REAL time)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -305,7 +288,7 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
const int c2=c1;
assert (ml2>=0 && ml2<h.mglevels(rl2,c2));
- vector<const generic_data<D>*> gsrcs(tl2s.size());
+ vector<const gdata<D>*> gsrcs(tl2s.size());
vector<CCTK_REAL> times(tl2s.size());
for (int i=0; i<(int)gsrcs.size(); ++i) {
assert (rl2<(int)storage[tl2s[i]-tmin].size());
@@ -328,11 +311,11 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
// Interpolate regions
template<int D>
-void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
- const iblist dh<D>::dboxes::* recv_list,
- const vector<int> tl2s, int rl2, int ml2,
- const iblist dh<D>::dboxes::* send_list,
- const CCTK_REAL time)
+void ggf<D>::intercat (int tl1, int rl1, int c1, int ml1,
+ const iblist dh<D>::dboxes::* recv_list,
+ const vector<int> tl2s, int rl2, int ml2,
+ const iblist dh<D>::dboxes::* send_list,
+ const CCTK_REAL time)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -345,7 +328,7 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
const int c2=c1;
assert (ml2>=0 && ml2<h.mglevels(rl2,c2));
- vector<const generic_data<D>*> gsrcs(tl2s.size());
+ vector<const gdata<D>*> gsrcs(tl2s.size());
vector<CCTK_REAL> times(tl2s.size());
for (int i=0; i<(int)gsrcs.size(); ++i) {
assert (rl2<(int)storage[tl2s[i]-tmin].size());
@@ -372,11 +355,11 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
// Interpolate regions
template<int D>
-void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
- const iblistvect dh<D>::dboxes::* recv_listvect,
- const vector<int> tl2s, int rl2, int ml2,
- const iblistvect dh<D>::dboxes::* send_listvect,
- const CCTK_REAL time)
+void ggf<D>::intercat (int tl1, int rl1, int c1, int ml1,
+ const iblistvect dh<D>::dboxes::* recv_listvect,
+ const vector<int> tl2s, int rl2, int ml2,
+ const iblistvect dh<D>::dboxes::* send_listvect,
+ const CCTK_REAL time)
{
assert (tl1>=tmin && tl1<=tmax);
assert (rl1>=0 && rl1<h.reflevels());
@@ -390,7 +373,7 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
for (int c2=0; c2<h.components(rl2); ++c2) {
assert (ml2>=0 && ml2<h.mglevels(rl2,c2));
- vector<const generic_data<D>*> gsrcs(tl2s.size());
+ vector<const gdata<D>*> gsrcs(tl2s.size());
vector<CCTK_REAL> times(tl2s.size());
for (int i=0; i<(int)gsrcs.size(); ++i) {
assert (rl2<(int)storage[tl2s[i]-tmin].size());
@@ -420,7 +403,7 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1,
// Copy a component from the next time level
template<int D>
-void generic_gf<D>::copy (int tl, int rl, int c, int ml)
+void ggf<D>::copy (int tl, int rl, int c, int ml)
{
// Copy
copycat (tl ,rl,c,ml, &dh<D>::dboxes::exterior,
@@ -429,7 +412,7 @@ void generic_gf<D>::copy (int tl, int rl, int c, int ml)
// Synchronise the boundaries a component
template<int D>
-void generic_gf<D>::sync (int tl, int rl, int c, int ml)
+void ggf<D>::sync (int tl, int rl, int c, int ml)
{
// Copy
copycat (tl,rl,c,ml, &dh<D>::dboxes::recv_sync,
@@ -438,8 +421,8 @@ void generic_gf<D>::sync (int tl, int rl, int c, int ml)
// Prolongate the boundaries of a component
template<int D>
-void generic_gf<D>::ref_bnd_prolongate (int tl, int rl, int c, int ml,
- CCTK_REAL time)
+void ggf<D>::ref_bnd_prolongate (int tl, int rl, int c, int ml,
+ CCTK_REAL time)
{
// Interpolate
assert (rl>=1);
@@ -455,8 +438,8 @@ void generic_gf<D>::ref_bnd_prolongate (int tl, int rl, int c, int ml,
// Restrict a multigrid level
template<int D>
-void generic_gf<D>::mg_restrict (int tl, int rl, int c, int ml,
- CCTK_REAL time)
+void ggf<D>::mg_restrict (int tl, int rl, int c, int ml,
+ CCTK_REAL time)
{
// Require same times
assert (t.get_time(rl,ml) == t.get_time(rl,ml-1));
@@ -468,8 +451,8 @@ void generic_gf<D>::mg_restrict (int tl, int rl, int c, int ml,
// Prolongate a multigrid level
template<int D>
-void generic_gf<D>::mg_prolongate (int tl, int rl, int c, int ml,
- CCTK_REAL time)
+void ggf<D>::mg_prolongate (int tl, int rl, int c, int ml,
+ CCTK_REAL time)
{
// Require same times
assert (t.get_time(rl,ml) == t.get_time(rl,ml+1));
@@ -481,8 +464,8 @@ void generic_gf<D>::mg_prolongate (int tl, int rl, int c, int ml,
// Restrict a refinement level
template<int D>
-void generic_gf<D>::ref_restrict (int tl, int rl, int c, int ml,
- CCTK_REAL time)
+void ggf<D>::ref_restrict (int tl, int rl, int c, int ml,
+ CCTK_REAL time)
{
// Require same times
// SHH: removed assert and added warning
@@ -498,8 +481,8 @@ void generic_gf<D>::ref_restrict (int tl, int rl, int c, int ml,
// Prolongate a refinement level
template<int D>
-void generic_gf<D>::ref_prolongate (int tl, int rl, int c, int ml,
- CCTK_REAL time)
+void ggf<D>::ref_prolongate (int tl, int rl, int c, int ml,
+ CCTK_REAL time)
{
assert (rl>=1);
vector<int> tl2s;
@@ -514,4 +497,4 @@ void generic_gf<D>::ref_prolongate (int tl, int rl, int c, int ml,
-template class generic_gf<3>;
+template class ggf<3>;