Dear all,
I'm revisting an old problem involving solving laplace and poision for a
moderatly complicated geometry. Here I would like to start with a 3D mesh with
few nodes and refine based on a kerry estimator. I've tried this before
(2009-2010) with libmesh and ran into the problem that I could not figure
out a good way to snap new nodes to the boundary of my geometry. Last time
around I gave up since I created meshes that had all types of problems.
Now my question, If I make my own MeshRefinment class and rewrite the
Node * libMesh::MeshRefinement::add_node ( Elem & parent,
unsigned int child,
unsigned int node,
processor_id_type proc_id
)
{
....
}
method, more in particular the lines
135 // Otherwise we need to add a new node, with a default id and the
136 // requested processor_id. Figure out where to add the point:
137
138 Point p; // defaults to 0,0,0
139
140 for (unsigned int n=0; n != parent.n_nodes(); ++n)
141 {
142 // The value from the embedding matrix
143 const float em_val = parent.embedding_matrix(child,node,n);
144
145 if (em_val != 0.)
146 {
147 p.add_scaled (parent.point(n), em_val);
148
149 // If we'd already found the node we shouldn't be here
150 libmesh_assert_not_equal_to (em_val, 1);
151 }
152 }
so that if the created node is on a surface I snap it to the boundary
by moving it along the normal of the surface of the parent element. Could that
work without any strange side effects? This is the old thread of discussion we
had at the time
https://sourceforge.net/p/libmesh/mailman/libmesh-users/thread/20091014130140.GM20082%40joa.me.uk/#msg23751829
best regards
Joa
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users