On 11/02/2011 11:41 PM, Kyunghoon Lee wrote:
> Hi all,
>
> I have a mesh (generated with gmsh) that has an internal line inside of a
> domain to evaluate an output along the line. As shown in the below mesh
> figure, the line is composed of element edges from (-2,-0.5) to (-2.0,0.5).
>
> I set the internal line as a physical line and try to get an output, but it
> seems my output functional evaluation has never called. So I switched my
> strategy to pass the coordinates of the element edges along the internal
> line such as
>
> virtual void boundary_assembly(FEMContext&c) {
> AutoPtr<Elem> elem_side = c.elem->build_side(c.side);
> const Real centroid_x = elem_side->centroid()(0);
> const Real centroid_y = elem_side->centroid()(1);
>
> if( (-2.0 == centroid_x)&& ((-0.5<= centroid_y) || (centroid_y<=
> 0.5)) ) {
> .......
> }
>
>
> but again my output evaluation has never called --- it looks like there is
> no element edges satisfying (-2.0 == centroid_x). I'm afraid probably the
> way I specify coordinates may not correct. Plz suggest me some ideas to
> fix the problem.
Well, for one thing, it's not a good idea to use "==" with floating
point numbers (as in "(-2.0 == centroid_x)"). See if doing
"abs(centroid_x+2.0) < 1.e-6" helps.
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users