← Back to team overview

dolfin team mailing list archive

Re: Change interface for boundary conditions: operator() --> eval(). [...]

 

Would it be possible to design BoundaryConditions in an analogous way to
Function so that it knows something about "sub boundary
conditions" (like subfunctions)? A BoundaryCondtion would contain "sub
boundary conditions" for different terms in the pde. Rather then
pressure in 3D NSE being component i = 3 when applying BC's, it could be
set by another function.

Garth 


On Wed, 2005-12-28 at 18:42 +0100, dolfin@xxxxxxxxxx wrote:
> Commit from logg (2005-12-28 18:42 CET)
> ----------------
> 
> Change interface for boundary conditions: operator() --> eval().
> 
> New interface is
> 
>   void eval(BoundaryValue& value, const Point& p, unsigned int i)
> 
> Motivation:
> 
> 1. Consistent with the new Function interface for user-defined functions.
> 
> 2. Shorter implementations:
> 
> Old version:
> 
>   class MyBC : public BoundaryCondition
>   {
>     const BoundaryValue operator() (const Point& p)
>     {
>       BoundaryValue value;
>       if ( std::abs(p.x - 1.0) < DOLFIN_EPS )
>         value = 0.0;
>       return value;
>     }
>   };
> 
>   class MyBC : public BoundaryCondition
>   {
>     void eval(BoundaryValue& value, const Point& p, unsigned int i)
>     {
>       if ( std::abs(p.x - 1.0) < DOLFIN_EPS )
>         value = 0.0;
>     }
>   };
> 
> All modules and demos updated to the new interface.
> 
>   dolfin  ChangeLog                                          1.273
>   dolfin  Makefile.in                                        1.137
>   dolfin  aclocal.m4                                         1.159
>   dolfin  configure                                          1.242
>   dolfin  src/Makefile.in                                    1.139
>   dolfin  src/config/Makefile.in                             1.140
>   dolfin  src/demo/Makefile.in                               1.146
>   dolfin  src/demo/fem/Makefile.in                           1.43
>   dolfin  src/demo/fem/convergence/main.cpp                  1.7
>   dolfin  src/demo/nls/Makefile.in                           1.10
>   dolfin  src/demo/nls/nonlinearpoisson/main.cpp             1.5
>   dolfin  src/demo/nls/poisson/main.cpp                      1.4
>   dolfin  src/demo/poisson/main.cpp                          1.13
>   dolfin  src/demo/scripting/Makefile.in                     1.29
>   dolfin  src/demo/solvers/Makefile.in                       1.139
>   dolfin  src/demo/solvers/convdiff/main.cpp                 1.22
>   dolfin  src/demo/solvers/elasticity/main.cpp               1.17
>   dolfin  src/demo/solvers/elasticity-updated/main.cpp       1.44
>   dolfin  src/demo/solvers/heat/main.cpp                     1.13
>   dolfin  src/demo/solvers/navierstokes/Makefile.in          1.106
>   dolfin  src/demo/solvers/navierstokes/benchmark/main.cpp   1.33
>   dolfin  src/demo/solvers/ode/Makefile.in                   1.123
>   dolfin  src/demo/solvers/ode/homotopy/Makefile.in          1.68
>   dolfin  src/demo/solvers/ode/modeling/Makefile.in          1.95
>   dolfin  src/demo/solvers/poisson/main.cpp                  1.40
>   dolfin  src/demo/solvers/stokes/main.cpp                   1.6
>   dolfin  src/greeting/Makefile.in                           1.120
>   dolfin  src/kernel/Makefile.in                             1.137
>   dolfin  src/kernel/common/Makefile.in                      1.141
>   dolfin  src/kernel/common/dolfin/Makefile.in               1.135
>   dolfin  src/kernel/fem/BoundaryCondition.cpp               1.7
>   dolfin  src/kernel/fem/FEM.cpp                             1.51
>   dolfin  src/kernel/fem/Makefile.in                         1.150
>   dolfin  src/kernel/fem/dolfin/BoundaryCondition.h          1.14
>   dolfin  src/kernel/fem/dolfin/Makefile.in                  1.149
>   dolfin  src/kernel/form/Makefile.in                        1.119
>   dolfin  src/kernel/form/dolfin/Makefile.in                 1.119
>   dolfin  src/kernel/function/Makefile.in                    1.112
>   dolfin  src/kernel/function/dolfin/Makefile.in             1.113
>   dolfin  src/kernel/io/Makefile.in                          1.146
>   dolfin  src/kernel/io/dolfin/Makefile.in                   1.140
>   dolfin  src/kernel/la/Makefile.in                          1.149
>   dolfin  src/kernel/la/dolfin/Makefile.in                   1.146
>   dolfin  src/kernel/log/Makefile.in                         1.127
>   dolfin  src/kernel/log/dolfin/Makefile.in                  1.127
>   dolfin  src/kernel/main/Makefile.in                        1.137
>   dolfin  src/kernel/main/dolfin/Makefile.in                 1.132
>   dolfin  src/kernel/math/Makefile.in                        1.128
>   dolfin  src/kernel/math/dolfin/Makefile.in                 1.127
>   dolfin  src/kernel/mesh/Makefile.in                        1.114
>   dolfin  src/kernel/mesh/dolfin/Makefile.in                 1.113
>   dolfin  src/kernel/nls/Makefile.in                         1.24
>   dolfin  src/kernel/nls/dolfin/Makefile.in                  1.24
>   dolfin  src/kernel/ode/Makefile.in                         1.145
>   dolfin  src/kernel/ode/dolfin/Makefile.in                  1.142
>   dolfin  src/kernel/parameter/Makefile.in                   1.6
>   dolfin  src/kernel/parameter/dolfin/Makefile.in            1.7
>   dolfin  src/kernel/quadrature/Makefile.in                  1.130
>   dolfin  src/kernel/quadrature/dolfin/Makefile.in           1.130
>   dolfin  src/modules/Makefile.in                            1.146
>   dolfin  src/modules/convdiff/Makefile.in                   1.139
>   dolfin  src/modules/convdiff/dolfin/Makefile.in            1.66
>   dolfin  src/modules/dolfin/Makefile.in                     1.66
>   dolfin  src/modules/elasticity/Makefile.in                 1.102
>   dolfin  src/modules/elasticity/dolfin/Makefile.in          1.56
>   dolfin  src/modules/elasticity-updated/Makefile.in         1.92
>   dolfin  src/modules/elasticity-updated/dolfin/Makefile.in  1.53
>   dolfin  src/modules/heat/Makefile.in                       1.46
>   dolfin  src/modules/heat/dolfin/Makefile.in                1.29
>   dolfin  src/modules/navierstokes/Makefile.in               1.137
>   dolfin  src/modules/navierstokes/NSESolver.cpp             1.44
>   dolfin  src/modules/navierstokes/dolfin/Makefile.in        1.66
>   dolfin  src/modules/poisson/Makefile.in                    1.138
>   dolfin  src/modules/poisson/dolfin/Makefile.in             1.67
>   dolfin  src/modules/stokes/Makefile.in                     1.30
>   dolfin  src/modules/stokes/dolfin/Makefile.in              1.28
>   dolfin  src/post/Makefile.in                               1.123
>   dolfin  src/pre/Makefile.in                                1.131
>   dolfin  src/test/main.cpp                                  1.18
>   dolfin  src/utils/Makefile.in                              1.134
>   dolfin  src/utils/inp2dx/Makefile.in                       1.134
> 
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev




Follow ups

References