On Tue, 10 Feb 2009, Kirk, Benjamin (JSC-EG) wrote:

> The savings with 0 variables will be minor, but as you add variables the
> current DofObject allocates storage to keep track of how many components
> each variable has on the object, and that means for 20 variables with
> lagrange elements you are storing a 20-length vector just to keep track of
> no variables for Elements...

Right, but as you point out we're also storing a 20-length vector on
each Node just to remind ourselves that yes, 20 variables with the
same FEType all have the same relative indexing.  Get rid of those 19
superfluous values and you'll get 19 of the other 20 for free.

> Consider the aforementioned case, where I have 20 variables of the same
> type.  Our current DofObject is very wasteful for this case, indeed as is
> all of DofMap.  At a minimum a BlockDofObject or something seems useful, but
> how to do that without templates???

Once you've got a BlockDofObject working correctly, why would you want
to add a templated option to use the less efficient old DofObject?
Just call the new one DofObject and you're done.

> I still maintain that the library *cannot* implement std::vector<Whatever>
> inside the DofObject without user cooperation (at least in the case of
> parallel redistribution, restart, etc...)

Definitely.
---
Roy

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to