dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #05138
Re: stokes plots
> On Mon, Jun 11, 2007 at 01:40:50PM -0400, Harish Narayanan wrote:
>> pcorreia@xxxxxxxxx wrote:
>> > In the Stokes demo the velocity solution is written as a vtk file
>> > velocity000000.vtu.
>> > How can I plot each of the components say u and v (I use Paraview)?
>> And
>> > how to plot the vector field?
>> >
>> Assuming you've opened the file velocity.pvd in Paraview:
>>
>> 1. In order to plot the vector field, add a "glyph" from the filter menu
>> and point it to the velocity vector (U) as the data source. You can
>> change the glyph density, size, shape, etc.
>> 2. In order to plot a scalar, such as a velocity component or a norm, I
>> use the "calculator" filter. Click calculator, and you can refer to the
>> components as U_0 and U_1. So if you wanted to plot the velocity norm,
>> you'd "calculate" norm (U) and plot the result, and if you wanted to
>> just plot a component, you'd just use U_0 or U_1.
>>
>> Harish
>
> You should also be able to extract the components in DOLFIN and then
> save (or plot) each one of them:
>
> Function u0 = u[0];
> Function u1 = u[1];
>
> Then
>
> plot(u0);
> plot(u1);
>
> should plot the two components as scalar fields. Or save each one to
> VTK format if you don't have Viper.
I added this but it gives an error:
// Solve PDE
Function u;
Function u0 = u[0];
Function u1 = u[1];
Function p;
pde.set("PDE linear solver", "direct");
pde.solve(u, p);
// Plot solution
plot(u);
plot(p);
plot(u0);
plot(u1);
// Save solution
File ufile("velocity.xml");
ufile << u;
File pfile("pressure.xml");
pfile << p;
// Save solution in VTK format
File ufile_pvd("velocity.pvd");
ufile_pvd << u;
File pfile_pvd("pressure.pvd");
pfile_pvd << p;
File u0_file_pvd("u.pvd");
u0_file_pvd << u0;
File u1_file_pvd("v.pvd");
u1_file_pvd << u1;
$>./demo
Initializing PETSc (ignoring command-line arguments).
Creating linear PDE with 3 boundary condition(s).
terminate called after throwing an instance of 'std::runtime_error'
what(): *** Error: Sub functions can only be extracted from discrete
functions.
p0_8737: p4_error: interrupt SIGx: 6
>
> /Anders
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>
Follow ups
References