← Back to team overview

dolfin team mailing list archive

Add support for picking sub functions and components of functions. [...]

 

Commit from logg (2005-11-30 23:20 CET)
----------------

Add support for picking sub functions and components of functions.

Functions can now be indexed to obtain sub functions of functions defined
by a mixed element or components of vector-valued functions.

This means that for a Function w defined by a 3D Taylor-hood element with
(3 + 1) components representing velocity u and pressure p, the following
operations are now supported:

w = Function(...)

u = w[0]; // first sub function of w = (u, p)
p = w[1]; // second sub function of w = (u, p)

u0 = u[0]; // first component of u
u1 = u[1]; // second component of u
u2 = u[2]; // third component of u

This means that it is now possible to for example save individual sub components
to separate files or otherwise work on them separately.

The new implementation has passed some preliminary tests, but more testing
is needed so please try out the new functionality and report any problems.

We should make a new release when we have done some more testing.

  dolfin  ChangeLog                                                       1.252
  dolfin  scripts/compileforms                                            1.11
  dolfin  src/demo/fem/convergence/Poisson2D_1.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson2D_2.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson2D_3.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson2D_4.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson2D_5.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson3D_1.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson3D_2.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson3D_3.h                          1.6
  dolfin  src/demo/fem/convergence/Poisson3D_4.h                          1.7
  dolfin  src/demo/fem/convergence/Poisson3D_5.h                          1.7
  dolfin  src/demo/nls/Poisson.h                                          1.3
  dolfin  src/demo/nls/PoissonNl.h                                        1.3
  dolfin  src/demo/poisson/Poisson.h                                      1.9
  dolfin  src/demo/solvers/stokes/plotsolution.m                          1.3
  dolfin  src/kernel/fem/FEM.cpp                                          1.42
  dolfin  src/kernel/fem/Makefile.am                                      1.27
  dolfin  src/kernel/fem/Makefile.in                                      1.140
  dolfin  src/kernel/fem/dolfin/FiniteElement.h                           1.22
  dolfin  src/kernel/fem/dolfin/Makefile.am                               1.22
  dolfin  src/kernel/fem/dolfin/Makefile.in                               1.139
  dolfin  src/kernel/fem/dolfin/MassMatrix2D.h                            1.6
  dolfin  src/kernel/fem/dolfin/MassMatrix3D.h                            1.6
  dolfin  src/kernel/fem/dolfin/P1Tet.h                                   1.5
+ dolfin  src/kernel/fem/dolfin/P1TetTemplate.h                           1.1
  dolfin  src/kernel/fem/dolfin/P1Tri.h                                   1.5
+ dolfin  src/kernel/fem/dolfin/P1TriTemplate.h                           1.1
  dolfin  src/kernel/fem/dolfin/StiffnessMatrix2D.h                       1.7
  dolfin  src/kernel/fem/dolfin/StiffnessMatrix3D.h                       1.7
  dolfin  src/kernel/function/DiscreteFunction.cpp                        1.3
  dolfin  src/kernel/function/Function.cpp                                1.28
  dolfin  src/kernel/function/FunctionPointerFunction.cpp                 1.3
  dolfin  src/kernel/function/Makefile.in                                 1.102
  dolfin  src/kernel/function/UserFunction.cpp                            1.3
  dolfin  src/kernel/function/dolfin/DiscreteFunction.h                   1.3
  dolfin  src/kernel/function/dolfin/FunctionPointerFunction.h            1.3
  dolfin  src/kernel/function/dolfin/GenericFunction.h                    1.8
  dolfin  src/kernel/function/dolfin/Makefile.in                          1.102
  dolfin  src/kernel/function/dolfin/UserFunction.h                       1.3
  dolfin  src/kernel/nls/Makefile.in                                      1.14
  dolfin  src/kernel/nls/dolfin/Makefile.in                               1.14
  dolfin  src/kernel/settings/Makefile.in                                 1.114
  dolfin  src/kernel/settings/dolfin/Makefile.in                          1.114
  dolfin  src/modules/convdiff/dolfin/ConvectionDiffusion.h               1.20
  dolfin  src/modules/elasticity/dolfin/Elasticity.h                      1.22
  dolfin  src/modules/elasticity/dolfin/ElasticityMass.h                  1.15
  dolfin  src/modules/elasticity-updated/dolfin/ElasticityUpdated.h       1.15
  dolfin  src/modules/elasticity-updated/dolfin/ElasticityUpdatedMass.h   1.10
  dolfin  src/modules/elasticity-updated/dolfin/ElasticityUpdatedSigma.h  1.14
  dolfin  src/modules/heat/dolfin/Heat.h                                  1.4
  dolfin  src/modules/navierstokes/dolfin/NSEContinuity.h                 1.10
  dolfin  src/modules/navierstokes/dolfin/NSEMomentum.h                   1.10
  dolfin  src/modules/poisson/dolfin/Poisson.h                            1.22
  dolfin  src/modules/stokes/StokesSolver.cpp                             1.3
  dolfin  src/modules/stokes/dolfin/Stokes.h                              1.4



Follow ups