dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #04420
Re: [HG dolfin] Implement assembly over interior facets. The result seems to
On Fri, Mar 09, 2007 at 03:07:43PM +0100, Garth N. Wells wrote:
> Why do we need a class AssemblyMatrix? GenericMatrix/GenericVector
> should provide the necessary virtual functions for assembly.
>
> Garth
Yes, definitely. The assembler assumes it gets a GenericTensor that
has a function
void add(real* block, uint* size, uint** entries)
(entries is probably a bad choice of name here, let's change it)
This makes it possible to implement just one assembly function and
keep the Assembler class small.
Anyway, the class AssemblyMatrix is just a temporary implementation of
something that implements the GenericTensor interface. My suggestion
is that we overload the add() function above in both GenericMatrix and
GenericVector. The overloaded functions will map to the correct add()
function in the respective classes. For GenericMatrix, we'll have
void add(real* block, uint* size, uint** entries)
{
add(block, size[0], entries[0], size[1], entries[1]);
}
So, even if AssemblyMatrix could be of some use (it seems to be a fast
option for assembly, the STL vector of maps beat PETSc in at least one
benchmark I made) it is just a temporary implementation until we decide
to implement the GenericTensor interface in GenericMatrix and
GenericVector.
/Anders
> DOLFIN wrote:
> > One or more new changesets pushed to the primary DOLFIN repository.
> > A short summary of the last three changesets is included below.
> >
> > changeset: 2698:eb995ba168f6249aa061bf16b6b094d7d697090b
> > tag: tip
> > user: "Anders Logg <logg@xxxxxxxxx>"
> > date: Fri Mar 09 13:40:42 2007 +0100
> > files: TODO src/kernel/fem/Assembler.cpp src/kernel/fem/UFC.cpp src/kernel/fem/dolfin/UFC.h src/sandbox/assembly/Poisson.form src/sandbox/assembly/Poisson.h src/sandbox/assembly/PoissonOld.form src/sandbox/assembly/PoissonOld.h src/sandbox/assembly/main.cpp
> > description:
> > Implement assembly over interior facets. The result seems to
> > be wrong (compared to the old assembly) but the new assembly
> > is considerably faster... :-)
> >
> >
> > changeset: 2697:d9af2a3e540db91dc68936ff188c588b0cc259e9
> > parent: 2696:e7e54e87c948b580979f1041facb491e5dacd102
> > parent: 2695:1099832e1b156f53450783a81243609beab71fff
> > user: "Anders Logg <logg@xxxxxxxxx>"
> > date: Fri Mar 09 09:17:50 2007 +0100
> > files: src/kernel/la/PETScEigenvalueSolver.cpp src/kernel/la/dolfin/PETScEigenvalueSolver.h
> > description:
> > Merge assembly over exterior facets
> >
> >
> > changeset: 2696:e7e54e87c948b580979f1041facb491e5dacd102
> > parent: 2690:24a6d6a566cdbdccb2c253cc62522fd265dad1af
> > user: "Anders Logg <logg@xxxxxxxxx>"
> > date: Thu Mar 08 23:30:09 2007 +0100
> > files: src/kernel/fem/Assembler.cpp src/sandbox/assembly/Poisson.form src/sandbox/assembly/Poisson.h src/sandbox/assembly/main.cpp
> > description:
> > Implement assembly over exterior facets (interior facets remain).
> >
> >
> > ----------------------------------------------------------------------
> > For more details, visit http://www.fenics.org/hg/dolfin
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev
> >
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
Follow ups
References