source: src/base/stencil.cpp@ 4571da

Last change on this file since 4571da was 4571da, checked in by Julian Iseringhausen <isering@…>, 14 years ago

vmg: Implement fourth-order discretization of the Poisson equation.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1762 5161e1c8-67bf-11de-9fd5-51895aff932f

  • Property mode set to 100644
File size: 970 bytes
RevLine 
[4571da]1/**
2 * @file stencil.cpp
3 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
4 * @date Mon Apr 18 12:25:05 2011
5 *
6 * @brief VMG::Stencil
7 *
8 */
9
10#ifdef HAVE_CONFIG_H
11#include <config.h>
12#endif
13
14#ifdef HAVE_MPI
15#include <mpi.h>
16#endif
17
18#include "base/stencil.hpp"
19#include "comm/comm.hpp"
20#include "grid/grid.hpp"
21#include "grid/tempgrid.hpp"
22#include "mg.hpp"
23
24using namespace VMG;
25
26void Stencil::Apply(Grid& grid) const
27{
28 Grid::iterator grid_iter;
29 Stencil::iterator stencil_iter;
30
31 TempGrid& temp = *MG::GetTempGrid();
32 temp.SetProperties(grid);
33
34 MG::GetComm()->CommToGhosts(grid);
35
36 for (grid_iter=grid.Iterators().Local().Begin(); grid_iter!=grid.Iterators().Local().End(); ++grid_iter) {
37 temp(*grid_iter) = diag * grid.GetVal(*grid_iter);
38 for (stencil_iter=disp.begin(); stencil_iter!=disp.end(); ++stencil_iter)
39 temp(*grid_iter) += stencil_iter->Val() * grid.GetVal(*grid_iter + stencil_iter->Disp());
40 }
41
42 grid.SetGrid(temp);
43}
Note: See TracBrowser for help on using the repository browser.