From: <ti...@ce...> - 2006-08-30 15:27:23
|
Dear libMesh developers, In FEInterface::inverse_map(), the default value for tolerance is 1.e-4, while in FE::inverse_map(), it is the macro TOLERANCE, which is defined in libmesh_common.h and depends on the compiler. I find this somehow irritating. In particular, if I use the variant of FEInterface::inverse_map() that takes a vector of points (rather than a single point), the default tolerance of FE::inverse_map() (not of FEInterface::inverse_map()) applies, i.e. I get a different default tolerance depending on whether I use single points or a vector. Also, I think, the user should be able to specify a different than the default tolerance also for the vector version if inverse_map(). (Currently, this is only possible for the point version.) The reason why I found out this is that I face a situation where, in a KellyErrorEstimator, the inverse_map() fails to find the result up to the default tolerance (which is TOLERANCE, which is 1.e-6 in my case), although the cells have affine maps. I think it's just because of the very small cells that I use. Please find attached a patch that makes all versions of inverse_map() use a default of TOLERANCE and accept an optional parameter for overriding that. Also, they all now accept the `secure' parameter. Best Regards, Tim |