Topic: Mixed Shell/Solid Model

Borek,
I've been smuggling to get one of my coupled models to run. I think I have narrowed the problem down to something related to mixed shell/solid models.

I created several models with just the structural model. A small model runs, but a larger model will crash the code. I am running the latest revision of OOFEM, compiled under Visual C++.

Could you take a look at the input file to make sure I am not doing something wrong with the setup? The file is attached.

If it looks ok, could you also try running it? I would like to confirm that the problem is not somehow related to the Windows/Visual c++ version I am using.

Thank-You,
Erik

Re: Mixed Shell/Solid Model

Hi Erik.
I tried running the attached problem, and while it works for me (with the SVN version), I did get a error with valgrind though. It seems countOfMasterDofs isn't set when SlaveDof :: updateLocalNumbering(EntityRenumberingFunctor &f) is called.

Re: Mixed Shell/Solid Model

I did another check. It seems SlaveDof :: updateLocalNumbering gets called before SlaveDof :: initialize, which isn't good. Probably a bug in the rigarm class.

Re: Mixed Shell/Solid Model

Mikael,
Thank-you for taking a look at this. That could certainly cause the crash I am seeing.

I'm glad to hear that you also found a likely cause, I was really starting to pull my hair out. I need to find (and learn to use!) a tool like valgrind for Visual C++/Windows.

-Erik

Re: Mixed Shell/Solid Model

The first time it enters the renumbering is when the domain is instanciated, however, the slave node isn't initialized until "checkConsistency" sequence runs.

I'm not sure how this should be solved properly.
One way would be to just set countOfPrimaryMasterDofs = -1; in the SlaveDof constructor (there is no need to update the numbering since the master dofs haven't been decided yet.)
Please try this and see if it helps.

Re: Mixed Shell/Solid Model

Mikael,
It looks like countOfPrimaryMasterDofs is -1 in the slaveDOF constructor, so this may get more complicated. 

This is probably an issue with the other slave DOF classes as well, since they also have the initialization within the checkConsistency function.

I'll do some more looking at the code and see if I can come up with a solution that moves the initialization code out of the checkConsistency functions.

I guess we also need to move this topic, or open a new topic in the developers discussion.

-Erik

Re: Mixed Shell/Solid Model

Sorry, a copy paste error from me. I meant to say put
countOfMasterDofs = -1
(so both countOfPrimaryMasterDofs and countOfMasterDofs should be there.)

Re: Mixed Shell/Solid Model

Mikael,
I think that fixed it. My test cases now all run. Now, its back to figuring out issues related to the coupled code.

Thank you for the help and suggestions.

Regards,
Erik

Re: Mixed Shell/Solid Model

Good to know. I'll commit that change later.