[MOAB-dev] A PDE example with MOAB.

Vijay S. Mahadevan vijay.m at gmail.com
Wed Apr 13 16:10:49 CDT 2011


> Are you implementing in Fortran or C++ or something else?  In what way does
> it seem complicated?

C++. I tried to traverse the hierarchy by recursively querying the
entities to get the data I needed. During the assembly, once I needed
to get the information for a particular node, I could not figure out
the reverse lookup to get a list of elements that the node belongs.

Tim, I will look at the test program you suggested and the routines
(query_elem_to_vert,..) to understand this. Being used to the elem,
face, node hierarchy, I am still getting used to the idea of
traversing through the mesh differently. I have been reading the
source and am slowly learning the "right" way to do things. So forgive
me for any other trivial questions that I might ask.

I do plan to write a simple 1-d program that probably Jed's library
already does. But hopefully it will be self contained so that it could
serve as a good example for anyone looking for something like this in
the future.

Vijay

On Wed, Apr 13, 2011 at 3:52 PM, Tim Tautges <tautges at mcs.anl.gov> wrote:
>
>
> On 04/13/2011 03:15 PM, Vijay S. Mahadevan wrote:
>>
>> Tim,
>>
>> I have used the example MOAB programs to read mesh files (gmsh mostly)
>> and load the entities and tags. But the usage for traversing through
>> the mesh and querying each node to obtain its neighbors and elements
>> that they belong seems a little complicated. Since these operations
>> are fundamental building blocks in writing a residual function for a
>> PDE, I just wanted to look at how it could be done for a simple
>> example.
>>
>
> Are you implementing in Fortran or C++ or something else?  In what way does
> it seem complicated?
>
> I just remembered one of the tests that shows basic mesh traversal, it's the
> test/perf/perf.cpp (the equivalent code that uses the iMesh interface is in
> tstt_perf.cpp in the same directory).  There are two functions in those
> tests you'll want to look at:
>
> - query_elem_to_vert: gets all the elements in the mesh, then for each
> element, gets the connectivity, the coordinates of those vertices, and
> averages those coordinates.  That function is about 20 lines long, including
> the averaging.
>
> - query_vert_to_elem: gets all the vertices, then for each queries the
> adjacent hexes.  That function is about 12 lines long.
>
>> I will definitely look at NEK as per your suggestion but if they only
>> use MOAB to read the mesh and convert it to their own mesh data
>> structures, it beats the purpose of my question. Thanks for the
>> pointer though.
>
> That's essentially what it does, so maybe not that helpful.
>
> - tim
>
>>
>> Vijay
>>
>> On Wed, Apr 13, 2011 at 3:02 PM, Tim Tautges<tautges at mcs.anl.gov>  wrote:
>>>
>>> Hi Vijay,
>>>  Yes, this is the right forum, but no, I don't know of a good example
>>> that's
>>> self-contained.  An alternative would be to look at the Nek code, which
>>> has
>>> a working MOAB reader.  That'll show how to pick up the mesh and bc's,
>>> though I don't think it writes anything down to the mesh.  Other than
>>> that,
>>> the tutorial slides on the MOAB wiki have some coding examples, but
>>> they're
>>> pretty short.
>>>
>>> - tim
>>>
>>> On 04/13/2011 02:40 PM, Vijay S. Mahadevan wrote:
>>>>
>>>> All,
>>>>
>>>> I was wondering whether there is a simple example on the usage of MOAB
>>>> or iMesh for solving a PDE. This could be as trivial as a finite
>>>> differenced, 1-d poisson equation but I just wanted to have a look at
>>>> a working example in action in order to extend the ideas to more
>>>> practical problems. I could not find any such tutorial in the MOAB
>>>> repository and so thought that maybe someone in the list can point me
>>>> to one.
>>>>
>>>> Also, if there is a different forum for such questions, I would
>>>> appreciate it if you can redirect me to it.
>>>>
>>>> Thanks,
>>>> Vijay
>>>>
>>>
>>> --
>>> ================================================================
>>> "You will keep in perfect peace him whose mind is
>>>  steadfast, because he trusts in you."               Isaiah 26:3
>>>
>>>             Tim Tautges            Argonne National Laboratory
>>>         (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
>>>         phone: (608) 263-8485      1500 Engineering Dr.
>>>           fax: (608) 263-4499      Madison, WI 53706
>>>
>>>
>>
>
> --
> ================================================================
> "You will keep in perfect peace him whose mind is
>  steadfast, because he trusts in you."               Isaiah 26:3
>
>             Tim Tautges            Argonne National Laboratory
>         (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
>         phone: (608) 263-8485      1500 Engineering Dr.
>           fax: (608) 263-4499      Madison, WI 53706
>
>


More information about the moab-dev mailing list