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

Reply via email to