#467 UGGrid test fails after calling a method of BasicGeometry
Metadata
Property | Value |
---|---|
Reported by | Oliver Sander (oliver.sander@tu-dresden.de) |
Reported at | Nov 20, 2008 08:33 |
Type | Bug Report |
Version | Git (pre2.4) [autotools] |
Operating System | Unspecified / All |
Last edited by | Oliver Sander (oliver.sander@tu-dresden.de) |
Last edited at | Nov 20, 2008 09:47 |
Closed by | Oliver Sander (oliver.sander@tu-dresden.de) |
Closed at | Nov 20, 2008 09:47 |
Closed in version | Unknown |
Resolution | Fixed |
Comment | Thanks, Martin! |
Description
So far UGGrid's intersection geometries were handwritten 'generic geometry'-type classes. In order to replace them with the new GenericGeometries I added proper BasicGeometries as base classes. These base classes are set up, but not actually used yet. One exception is the method jacobianInverseTransposed(), which had not been implemented at all so far. Here the corresponding method in the BasicGeometry base class is called now.
The grid test crashes after calling this method, though. It doesn't seem to be a bug in jacobianInverseTransposed(); I rather suspect something strange in the BasicGeometry memory handling (of course I may be wrong). Here's what makes me think so:
Add the lines
std::cout << "i: " << i << " local: " << coord_[i] << " base: " << Base::operator << std::endl; assert((coord_[i]-Base::operator).infinity_norm() < 1e-6);
to the operator[] (at uggridgeometry.hh:380), compile, and call the grid test. You will notice that the corner coordinates of intersectionGlobal seem to change without intervention from the outside.
This is as far as I got. Some help from the makers of BasicGeometry would be appreciated. Apologies in advance if it turns out that I screwed it up myself.