Hi John,

I am really stuck here... any clue would be helpful.
Can you tell me if the pattern below is familiar?

I could not get the "add_extra_ghost_elements" to work.
I am using individual "add_constrain_row" to model the rigid BC (DOF_I =
REFERENCE_DOF).
LibMesh fails when I call "reinit_constaints", which internally calls my
own "constrain" function to add the constrain_rows.

This is what I see now:
...
# Debug[1]: add_constraint_row: 3781 => 1287   (dof => dof)
# Debug[1]: add_constraint_row: 3887 => 1287
# Debug[1]: add_constraint_row: 3927 => 1287
# Debug[1]: add_constraint_row: 4021 => 1287
# Debug[1]: add_constraint_row: 4025 => 1287
Assertion `item.first != expandable' failed.

Stack frames: 9
0: libMesh::print_trace(std::ostream&)
1: libMesh::MacroFunctions::report_error(char const*, int, char const*,
char const*)
2: libMesh::DofMap::process_constraints(libMesh::MeshBase&)
3: libMesh::System::reinit_constraints()

Thanks,
Renato

On Wed, Feb 20, 2019 at 6:58 PM Renato Poli <rebp...@gmail.com> wrote:

> Hi John,
>
> Should I consider "add_extra_ghost_elem"?
> Then I add "row_constraints" between the DOFs I need to tie together and
> this element.
> Does that make sense?
> If so, what element should I add? I just need a single DOF to tie many
> DOFs together.
>
> thanks,
> Renato
>
> On Wed, Feb 20, 2019 at 6:07 PM Renato Poli <rebp...@gmail.com> wrote:
>
>> Adding the mailing list in distribution...
>>
>> On Wed, Feb 20, 2019 at 6:03 PM Renato Poli <rebp...@gmail.com> wrote:
>>
>>> Thanks.
>>>
>>> Do you see a better way to do?
>>> I can see that Abaqus uses an extra node to tie all dofs together.
>>> I need the DOFs to be identical.
>>> That means eliminating lines in the matrix so that the displacements are
>>> identical to each other.
>>>
>>> Renato
>>>
>>> On Wed, Feb 20, 2019 at 5:53 PM John Peterson <jwpeter...@gmail.com>
>>> wrote:
>>>
>>>> On Wed, Feb 20, 2019 at 2:43 PM Renato Poli <rebp...@gmail.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Just refreshing this one, because I am sort of stuck in inserting a
>>>>> "rigid"
>>>>> BCs.
>>>>> It seems simple, but I cannot make it work.
>>>>>
>>>>
>>>> Hi,
>>>>
>>>> From your error message, it sounds like you are introducing a coupling
>>>> (through the constraint) between two dofs which would otherwise not be
>>>> coupled, and this causes a new nonzero to be inserted into the system
>>>> matrix after preallocation. You may be able to work around this issue by
>>>> augmenting the sparsity pattern using a GhostingFunctor, similar to what is
>>>> done in miscellaneous/miscellaneous_ex9/augment_sparsity_on_interface.h.
>>>>
>>>> --
>>>> John
>>>>
>>>>

_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to