Thanks, that was the issue. I moved the call to add_system<ExplicitSystem>() to somewhere else.
On 7/13/16, 11:44 AM, "Roy Stogner" <[email protected]> wrote: > >On Wed, 13 Jul 2016, John Peterson wrote: > >> On Wed, Jul 13, 2016 at 12:04 PM, Salazar De Troya, Miguel < >> [email protected]> wrote: >> >>> I have tried the following: Add an ExplicitSystem pointer to >>> PoissonSystem and add this system in the PoissonSystem constructor: >>> >>> densities = &(es.add_system<ExplicitSystem>("Densities")); >> >> It's possible there is a simple programming error that would explain the >> issues you are having... > >I suspect that adding a system in the constructor for another system >*is* the programming error. EquationSystems::add_system() is what >calls that constructor in the first place, and I don't think anybody's >ever troubled to make sure that add_system() is a reentrant function. > >Hmm... that looks like the problem. The add_system<PoissonSystem>() >passes this->n_systems() (i.e. 0, if this is the first addition) to >the PoissonSystem constructor.. but before it has a chance to get to >_systems.insert(), add_system<ExplicitSystem>() gets called, and it >*also* sees this->n_systems() == 0, so now we've got two systems added >with overlapping ids. >--- >Roy ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
