If you want to look at my code, it on my branch of MOOSE called
xfem_phantom at g...@github.com:bwspenc/moose. Look at the file
moose/framework/src/base/XFEM.C in the cut_mesh_with_efa() method.
Every time an element gets cut by a crack, I need to create new nodes
identical to some of the nodes of that element, create two new elements
that are connected to either the new nodes or the original nodes, and then
delete the original elements. Every new node is connected to an element,
and I never delete nodes.
Once that process happens, I call MOOSE's FEProblem::meshChanged(), which
calls the EquationSystems::reinit(), and end up getting stuck in
system_projection(), like you said.
I could definitely be doing something wrong here -- I came up with my
method for adding elements and nodes and deleting elements based on trial
and error. I'm pretty sure we're not explicitly calling DofMap::reinit()
anywhere. Does it get called by EquationSystems::reinit()? Maybe that's my
problem. That would be nice if that's all I have to do. I'll give it a
try.
-Ben
Benjamin Spencer
Fuels Modeling and Simulation
Idaho National Laboratory
PO Box 1625
Idaho Falls, ID 83415-3840
208-526-1683
On Fri, Nov 21, 2014 at 2:09 PM, Roy Stogner <royst...@ices.utexas.edu>
wrote:
>
> On Fri, 21 Nov 2014, Benjamin Spencer wrote:
>
> the prolongation/restriction code used for adaptive refinement in
>> libmesh is getting hung up dealing with the nodes that I create in
>> XFEM because they don't have old dof indices. I've made a couple of
>> small changes to my version of libmesh to get that to work, but it
>> breaks other stuff. We've talked about this in the past, and need
>> to revive that discussion. It hasn't been a show stopper for me
>> proceeding forward with my work so far, which is why I haven't taken
>> the time to get to the bottom of the issue, but I need to. It would
>> be really helpful to talk with someone who knows that code better.
>> Is that you, Roy?
>>
>
> I would have said yes, but since Ben's beaten me to volunteering, it
> sounds like we're going to need a duel to settle things first.
>
> More seriously:
>
> It sounds like you've been dying in the old_dof_indices(elem,...)
> call in ProjectVector::operator() in system_projection.C? How are the
> new nodes connected to (new? old?) elements?
>
> I'm having trouble seeing how that would happen, though. If the new
> nodes aren't connected to an Elem in the mesh, then they shouldn't be
> iterated over in ProjectVector and it shouldn't matter that they don't
> have an old_dof_object. If they are connected to an Elem in the mesh,
> then they should be iterated over in DofMap::reinit() and they should
> be given an old_dof_object then.
> ----
> Roy
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel