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

Reply via email to