Thanks to Mihai and Wolfgang for the ideas.

I will switch to CG for the 2-D code.

> I also tried doing
> >
> > std::vector< FullMatrix<double> > inv_mass_matrix;
> >
> > inv_mass_matrix.resize( triangulation.n_cells() );
> >
> > But then I could not allocate memory for the FullMatrix objects.
>
> Why not? What happens when you do
>  inv_mass_matrix.resize (triangulation.n_cells(),
>                             FullMatrix (dofs_per_cell, dofs_per_cell));
> ?
>
> I did not know that resize can take a second argument. I was instead
searching for a resize function for FullMatrix.

I have got a basic 1-d code solving Euler equations using RKDG. Only first
order works now since I need to implement some form of limiter.

I am using subdivided_hyper_cube to make the grid. Then I know the order of
the face indices and cell numbering. I dont plan to do any refinement. So I
first compute flux using some Riemann solver at all cell faces and store
them. Then while assembling the rhs, I am using these fluxes. Basically I
dont want to compute flux at a face twice.

I dont know how to do this in 2d. Storing all the face fluxes would be
expensive. I have looked at MeshWorker in Step-12. But it seems to be used
for assembling matrices. Is it  useful for RKDG type schemes where I really
dont assemble any matrices ? Does MeshWorker avoid computing face flux more
than once ?

Thanks
praveen

PS: My updated code is at the same place (r194)
http://code.google.com/p/cfdlab/source/browse/trunk/deal.ii/dg_ns_1d/dg.cc
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to