~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to sandbox/nonmatching/main.cpp

  • Committer: Niclas Jansson
  • Date: 2010-10-17 10:21:52 UTC
  • Revision ID: njansson@csc.kth.se-20101017102152-e6u3c9uwxa4z19c8
Minor fixes in configure.ac

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Licensed under the GNU LGPL Version 2.1.
2
 
 
3
 
#include <dolfin.h>
4
 
#include "Simple.h"
5
 
  
6
 
using namespace dolfin;
7
 
 
8
 
int main(int argc, char* argv[])
9
 
{
10
 
  Mesh meshA;
11
 
  MeshEditor editor;
12
 
  editor.open(meshA, "triangle", 2, 2);
13
 
  editor.initVertices(4);
14
 
  editor.addVertex(0, 0.0, 0.0);
15
 
  editor.addVertex(1, 1.0, 0.0);
16
 
  editor.addVertex(2, 1.0, 1.0);
17
 
  editor.addVertex(3, 0.0, 1.0);
18
 
  editor.initCells(2);
19
 
  editor.addCell(0, 0, 1, 3);
20
 
  editor.addCell(1, 1, 2, 3);
21
 
  editor.close();
22
 
 
23
 
  Function fA;
24
 
  Vector xA;
25
 
 
26
 
  Form* M = new SimpleFunctional(fA);
27
 
 
28
 
  fA.init(meshA, xA, *M, 0);
29
 
 
30
 
  int NA = meshA.numVertices();
31
 
 
32
 
  // Generate some values for fA
33
 
  real* arr = new real[NA];
34
 
  for (VertexIterator v(meshA); !v.end(); ++v)
35
 
  {
36
 
    int id = v->index();
37
 
    Point p = v->point();
38
 
 
39
 
    arr[0 * NA + id] = 2.0 * (p[1] - 0.5) * pow(p[0] - 0.0, 2); 
40
 
  }
41
 
 
42
 
  fA.vector().set(arr);
43
 
  delete arr;
44
 
 
45
 
  File file_fA("fA.pvd");
46
 
  file_fA << fA;
47
 
 
48
 
  UnitSquare meshB(11, 11);
49
 
 
50
 
  Function fB;
51
 
 
52
 
  ufc::finite_element* element = M->form().create_finite_element(0);
53
 
 
54
 
  projectL2NonMatching(meshB, fA, fB, *element);
55
 
 
56
 
  File file_fB("fB.pvd");
57
 
  file_fB << fB;
58
 
 
59
 
  return 0;
60
 
}