Anders Logg wrote: > On Thu, Jul 03, 2008 at 06:07:08PM +0100, Garth N. Wells wrote: >> >> Kent-Andre Mardal wrote: >>> On to., 2008-07-03 at 08:03 +0100, Garth N. Wells wrote: >>>> 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: 4374:6e1db926186ebfe9d9316b729a7d5747be3c5115 >>>>> tag: tip >>>>> parent: 4373:8f4accd9eb039d0d13412e8d871e7f1bfce896b8 >>>>> parent: 4372:3abbccc877d3bb358c76ef36dbbe252155b88183 >>>>> user: Kent-Andre Mardal <[EMAIL PROTECTED]> >>>>> date: Wed Jul 02 16:02:17 2008 +0200 >>>>> files: dolfin/fem/Assembler.cpp dolfin/fem/DirichletBC.cpp >>>>> site-packages/dolfin/assemble.py >>>>> description: >>>>> merge >>>>> >>>>> >>>>> changeset: 4373:8f4accd9eb039d0d13412e8d871e7f1bfce896b8 >>>>> parent: 4369:b272b94b43ae789e2c72c90f6a027ce9fb89f6fc >>>>> user: Kent-Andre Mardal <[EMAIL PROTECTED]> >>>>> date: Wed Jul 02 16:01:09 2008 +0200 >>>>> files: demo/pde/sym-dirichlet-bc/demo.py dolfin/fem/Assembler.cpp >>>>> dolfin/fem/Assembler.h dolfin/fem/DirichletBC.cpp >>>>> dolfin/fem/DirichletBC.h dolfin/fem/assemble.cpp dolfin/fem/assemble.h >>>>> dolfin/la/AssemblyMatrix.cpp dolfin/la/AssemblyMatrix.h >>>>> dolfin/la/EpetraMatrix.cpp dolfin/la/EpetraMatrix.h >>>>> dolfin/la/EpetraVector.cpp dolfin/la/EpetraVector.h >>>>> dolfin/la/GenericMatrix.h dolfin/la/GenericTensor.h >>>>> dolfin/la/GenericVector.h dolfin/la/Matrix.h dolfin/la/PETScMatrix.cpp >>>>> dolfin/la/PETScMatrix.h dolfin/la/PETScVector.cpp dolfin/la/PETScVector.h >>>>> dolfin/la/Scalar.h dolfin/la/Vector.h dolfin/la/uBlasMatrix.h >>>>> dolfin/la/uBlasVector.cpp dolfin/la/uBlasVector.h >>>>> dolfin/swig/dolfin_fem_pre.i dolfin/swig/dolfin_headers.i >>>>> site-packages/dolfin/assemble.py >>>>> description: >>>>> implemented symmetric handling of boundary conditions >>>>> >>>> Great. >>>> >>>> I looked at the demo but could see how to specify the method for >>>> applying boundary conditions. Could you write a short description on how >>>> to use it and it compares in terms of performance? >>>> >>>> Garth >>>> >>> Can you explain to me what the different methods do ? I assume you refer >>> to the topological, geometric, pointwise switch in computeBC (which >>> is used). >>> >> I haven't looked at it in detail for some time, so I have to defer to >> Anders and Kristian for a good explanation. > > We have implemented 3 different strategies for locating the dofs for > which strong boundary conditions should be enforced: >
I guess none of these strategies will work for P0 elements? Garth > 1. Topological search > > This will iterate over all boundary facets, and for each facet > tabulate the dofs that are on the facet using the UFC function > tabulate_facet_dofs. The BCs will be enforced for all these dofs. > > This means that BCs will be enforced for all dofs belonging to a facet > which is *entirely on the boundary*. As a consequence, BCs will not be > enforced for dofs that happen to lie on the boundary but which belong > to a facet which is not on the boundary. > > For example, BCs will not be enforced for some vertex dofs that are on > the boundary. This does not matter for continuous elements, since a > vertex dof will belong to at least one facet which is on the boundary > (even if it also belongs to another facet which is not on the > boundary). However, for DG methods this does matter. > > 2. Geometric search > > This will iterate over all boundary facets and locate all nearby dofs > which are on the facet, using the UFC function tabulate_coordinates > and test the location of the dofs geometrically against the location of > the facet. This is slower than the topological search, but catches > the dofs that the topological search may miss. > > 3. Pointwise > > This will iterate over all cells (not only the boundary facets) of the > entire mesh and call the inside() function of a SubDomain to check > which dofs should be constrained. This allows setting boundary > conditions pointwise (even inside the domain). > > > > ------------------------------------------------------------------------ > > _______________________________________________ > DOLFIN-dev mailing list > [email protected] > http://www.fenics.org/mailman/listinfo/dolfin-dev _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
