[PATCH] Fix some examples
Jeffrey D. Oldham
oldham at codesourcery.com
Mon Jul 12 18:39:56 UTC 2004
Richard Guenther wrote:
> Fixes LinearAdvection1d and Lattice.
>
> Ok?
Yes. It's always good to have more working examples.
> Richard.
>
>
> 2004Jul11 Richard Guenther <richard.guenther at uni-tuebingen.de>
>
> * examples/Field/ScalarAdvection1D/ScalarAdvection1D.cpp:
> move to new Field representation.
> examples/Lattice/Coordinate.cpp: likewise.
> makefile: re-enable them.
>
>------------------------------------------------------------------------
>
>===== makefile 1.4 vs edited =====
>--- 1.4/r2/makefile 2003-12-10 10:59:32 +01:00
>+++ edited/makefile 2004-07-11 19:32:40 +02:00
>@@ -67,6 +67,7 @@
> EXAMPLEDIRS = examples/Components/Shock \
> examples/Doof2d \
> examples/Field/ScalarAdvection \
>+ examples/Field/ScalarAdvection1D \
> examples/GKPoisson \
> examples/Indirection/FFT \
> examples/Manual/Doof2d examples/Manual/Sequential \
>@@ -84,12 +85,12 @@
> examples/Solvers/UMPJacobi \
> examples/Stencil/Laplace examples/Stencil/Life \
> examples/Tiny \
>- examples/UserFunction/CosTimes
>+ examples/UserFunction/CosTimes \
>+ examples/Lattice
> # Those dont compile...
> # examples/Field/Caramana examples/Field/Laplace \
>-# examples/Field/Laplace2 examples/Field/ScalarAdvection1D \
>+# examples/Field/Laplace2 \
> # examples/Field/StatigraphicFlow \
>-# examples/Lattice \
> # examples/Particles/PIC2d \
>
> .PHONY: examples examplesclean $(EXAMPLEDIRS)
>===== examples/Field/ScalarAdvection1D/ScalarAdvection1D.cpp 1.1 vs edited =====
>--- 1.1/r2/examples/Field/ScalarAdvection1D/ScalarAdvection1D.cpp 2002-05-13 17:47:22 +02:00
>+++ edited/examples/Field/ScalarAdvection1D/ScalarAdvection1D.cpp 2004-07-11 19:31:18 +02:00
>@@ -27,7 +27,7 @@
> // ACL:license
>
> // -----------------------------------------------------------------------------
>-// 1D Wave propagation example, illustrating use of Mesh, DiscreteGeometry, and
>+// 1D Wave propagation example, illustrating use of Mesh, and
> // Fields.
> // ----------------------------------------------------------------------------
>
>@@ -50,20 +50,20 @@
> typedef UniformRectilinearMesh<1> Mesh_t;
> Mesh_t mesh(vertexDomain, origin, spacings);
>
>- // Create two geometry objects - one allowing 1 guard layer to
>+ // Create two layout objects - one allowing 1 guard layer to
> // account for stencil width and another with no guard layers to support
> // temporaries:
>- typedef DiscreteGeometry<Cell, UniformRectilinearMesh<1> > Geometry_t ;
>- Geometry_t geom1c(mesh, GuardLayers<1>(1));
>- Geometry_t geom1ng(mesh);
>+ DomainLayout<1> layout1(vertexDomain, GuardLayers<1>(1));
>+ DomainLayout<1> layoutng(vertexDomain);
>+ Centering<1> cell = canonicalCentering<1>(CellType, Continuous);
>
> // Create the Fields:
>
> // The flow Field u(x,t):
>- Field<Geometry_t> u(geom1c);
>+ Field<Mesh_t> u(cell, layout1, mesh);
> // The same, stored at the previous timestep for staggered leapfrog
> // plus a useful temporary:
>- Field<Geometry_t> uPrev(geom1ng), uTemp(geom1ng);
>+ Field<Mesh_t> uPrev(cell, layoutng, mesh), uTemp(cell, layoutng, mesh);
>
> // Initialize flow Field to zero everywhere, even global guard layers:
> u.all() = 0.0;
>@@ -79,8 +79,8 @@
> // decaying to zero away from nCells/4 both directions, with a height of 1.0,
> // with a half-width of nCells/8:
> const double pulseWidth = spacings(0)*nCells/8;
>- const double u0 = u.x(nCells/4)(0);
>- u = 1.0*exp(-pow2(u.xComp(0)(pd)-u0)/(2.0*pulseWidth));
>+ const double u0 = positions(u).read(nCells/4)(0);
>+ u = 1.0*exp(-pow2(positions(u).comp(0).read(pd)-u0)/(2.0*pulseWidth));
>
> // Output the initial field on its physical domain:
> std::cout << "Time = 0:\n";
>===== examples/Lattice/Coordinate.cpp 1.1 vs edited =====
>--- 1.1/r2/examples/Lattice/Coordinate.cpp 2002-05-13 17:47:23 +02:00
>+++ edited/examples/Lattice/Coordinate.cpp 2004-07-11 19:18:06 +02:00
>@@ -87,10 +87,8 @@
> typedef UniformRectilinearMesh<2> Mesh_t;
> Mesh_t mesh(domain, origin, spacings);
>
>- typedef DiscreteGeometry<Cell, UniformRectilinearMesh<2> > Geometry_t;
>- Geometry_t geom(mesh, GuardLayers<2>(1));
>-
>- Field<Geometry_t> u(geom);
>+ Centering<2> cell = canonicalCentering<2>(CellType, Continuous);
>+ Field<Mesh_t, double, MultiPatch<UniformTag,Brick> > u(cell, layout, mesh);
>
> Interval<2> d2 = u.physicalDomain();
>
>
>
--
Jeffrey D. Oldham
oldham at codesourcery.com
More information about the pooma-dev
mailing list