[aspect-devel] [deal.II] Duplicate Vertices

Eric Heien emheien at ucdavis.edu
Mon Jan 28 16:26:24 PST 2013


On Jan 28, 2013, at 2:00 PM, Wolfgang Bangerth wrote:

> 
>> Initially, I was planning for each writer to put the data points
>> passed to it in the filter, then actually write all output at once
>> after flush() is called.  If we can put this functionality in
>> DataOutBase::write_* then it will simplify things.
> 
> Ultimately, I don't care very much where it happens. If you have a good idea how to do it go with it.
> 
> My gut feeling is that by the time you stick it into the streams, you've already ripped the information of what data is defined where into separate pieces and you'd have to piece it back together inside the stream object. I think it would be simpler to do it inside the write_* functions.
> 
> An additional advantage is that if you do it in the write_* functions, you can still operate on the Patches data structure which is shared between all the writers. So, any functionality you write that works on the Patches is something you can share between different file format writers (you can, even if you don't right away) whereas stuff that you write for a particular stream is likely going to be one-off.

OK, I'll plan on putting the changes in write_* since that will make things much simpler.

>> The DataOutFilter class would maintain
>> structures to hold this remapping information, which would also mean
>> we could avoid recomputing this for each of the DataOutBase::write_*
>> functions.  It is also possible to hold these structures in
>> DataOutBase, but that seems to violate the class abstraction and you
>> get in trouble if write_nodes() is called for multiple meshes with a
>> given DataOutBase.
> 
> If I understand you correctly, then DataOutFilter would be a data structure that computes information from the patches and makes it available to the write_* functions. It would generalize the data computed by the function I had proposed before?
> 
> This seems like the right direction to me.

Yes, DataOutFilter will abstractly represent these filtered points which the write_* functions can then use.  I'll start working on this soon and run the changes by you and the other developers before checking them in.  I doubt it will be ready by the release of deal.II 8.0 though.

-Eric



More information about the Aspect-devel mailing list