getAttachedSVLSHeavisideData/getAttachedVLSHeavisideData functions
Both functions are using dynamic_cast and it cost a lot (65% under callgrind, instead of seeing getData). Apparently it could be replaced by a static cast if we are confident with the used tag. Because type checking is only here to prevents miss usage of tag not used to attach HeavisideData ... From a design point of view creating a class that store tag and ways to access data related to this tag is safer. This is what xAttachedDataManagerAOMD provides and it may be used instead of those functions. But anyway getData return a void pointer wich is null if no data found and a static_cast may work as a charm in most cases (no one use those functions directly ... no ?? ). By removing getAttachedSVLSHeavisideData declaration in header it would finish to isolated this function ... and avoid her mis usage ...