Hi all,
here is a patch to avoid inverse maps on sides reinit.
I hope that the main developers will consider it and 
have some time to give it a look since it might break a lot of code... 

The major changes are in FEBoundary and FEBase,
I also added the implementation files so that you can easily vimdiff.

FEBase::last_side,last_edge are now the type of the side and not the side 
number.
I think that it is safe to call
FE::init_face_shape_functions (qrule->get_points(),  side.get()) 
only if the type of the side is different but I might be wrong...

In FEBase I added a method that returns the nodes coordinates for reference 
frame elements.
This method could also be used to speed-up the solution output when using 
reference frame finite elements.
I did it based on FEBase::on_reference_element()
would you please check that everything is correct. This kind of coding is 
error-prone and I'm not sure about the PIRAMID5.

In dbg mode a warning says that the parameter tolerance of the method reinit is 
not used.
The examples seems to run fine.

For dG discretizations on 3D linear meshes the time required for shape 
computations on sides is reduces by 1/3.
On second order meshes higher gains are to be expected and false negative 
Jacobians can be totally avoided.

Many thanks.
Lorenzo



 
------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to