← Back to team overview

dolfin team mailing list archive

Re: [Question #116222]: MPI Problem

 

Question #116222 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/116222

    Status: Open => Answered

Garth Wells proposed the following answer:

On 01/07/10 13:16, Pietro Maximoff wrote:
> Question #116222 on DOLFIN changed:
> https://answers.launchpad.net/dolfin/+question/116222
>
> Pietro Maximoff posted a new comment:
> Below's a simple test program. All it does is create a rectangular mesh
> and colours it. Any 2D UFL form file can be used for Test.h as the test
> program doesn't solve any PDE problem.
>
> I'm using DOLFIN version 0.9.7 .
>

You need to make the program as simple as possible - right back to the 
trivial case that the code does nothing if necessary - and build it up 
until you get the error.

Garth


> Many thanks
>
> Pietro
>
> ========================================
>
> #include<dolfin.h>
> #include "Test.h"
>
> using namespace dolfin;
>
> int main()
> {
> 	const int dim = 2;							// dimension
>
> 	// Create mesh
> 	
> 	Rectangle mesh(0.0, 0.0, 1.0, 1.0, 10, 10);
> 	
> 	// Create function space
> 	Test::FunctionSpace V(mesh);
> 	
> 	// Set up forms
> 	Test::BilinearForm a(V, V);
> 	Test::LinearForm L(V);
> 	
> 	// Access mesh geometry
> 	MeshGeometry&  geometry = mesh.geometry();
> 		
> 	// Associate a vertex to a specific cell
> 	double x0, x1;
> 	Array<double>  *xy;
> 	
> 	Vector volt(mesh.num_vertices());
> 	double block[mesh.num_vertices()];
> 	dolfin::uint rows[mesh.num_vertices()];
> 	
> 	int i = 0;
> 	 for (VertexIterator vertex(mesh); !vertex.end(); ++vertex) {
> 		xy = new Array<double>(dim, geometry.x(vertex->index()));
> 		x0 = (*xy)[0];
> 		x1 = (*xy)[1];
>
> 		if (x0<= 0.4)
> 		   block[i] = 40;
> 		else
> 		  block[i] = -86;
>
> 		++i;
> 	}
>
> 	// Indices of the row of the vector to set
> 	for (unsigned int i = 0; i<  mesh.num_vertices(); ++i)
>              rows[i] = i;
>
> 	// Output file in VTK format
> 	File file("test_out.pvd");
> 	
> 	volt.set(block, mesh.num_vertices(), rows);
> 	Function u(V, volt);
>
>          file<<  u;
>
> 	plot(u);	
> }
>
> =================================================
>

-- 
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.