Roy, Sorry about the previous message.
I thought I sent in a request a while back to make this method virtual in order to facilitate exactly this. I'm not sure whether those features are in the repository now. I'm talking about our virtual methods discussion on deriving from EquationSystems. Vijay On Thu, Apr 1, 2010 at 5:06 PM, Roy Stogner <[email protected]> wrote: > > On Thu, 1 Apr 2010, Andrea Hawkins wrote: > >> Hmm... I still get the same error. >> >> It doesn't appear that there is a check in EquationSystems::read() to >> see if the system exists. > > There's no check in EquationSystems::read() - there's one in > EquationSystems::add_system(). > > But wait - maybe you're not getting to the templated add_system(), > because the non-templated add_system() found an unrecognized sys_type > in the restart file? For my trick to work, your derived system can't > override TransientNonlinearImplicitSystem::system_type() - > system_type() is what gets written out to file, and if you write > "MyOwnSystem" out then the non-templated add_system() won't know what > to do with that. > > I'll modify the non-templated add_system() in the svn head, to have it > not throw an error if there's already a system of the same name. > That'll make your existing files readable via my trick, and hopefully > will make it easier for others. > --- > Roy > >> On Thu, Apr 1, 2010 at 3:27 PM, Roy Stogner <[email protected]> wrote: >>> >>> On Thu, 1 Apr 2010, Andrea Hawkins wrote: >>> >>>> I've created a system which inherits public >>>> TransientNonlinearImplicitSystem. This works fine, but when I write >>>> out the equation system and try to restart from some point, I get the >>>> error that it doesn't recognize my system and so cannot read the >>>> solution. >>>> >>>> It looks like when I call equation_systems.add_system templated with >>>> my system name it works fine, but when the equation_systems.read >>>> attempts to add systems it calls an add_system which is not templated, >>>> but passes the type as a variable. >>>> >>>> Is there an easy work around? Somewhere I could cast my system to >>>> something else? >>> >>> The trick is to handle the add_system yourself, before calling >>> EquationSystems::read(). That way when read() calls add_system(), it >>> will notice that a system with the same name already exists and it >>> will use that. >>> --- >>> Roy >>> >> > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Libmesh-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
