]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
8 years agoMerge pull request #2035 from davydden/slepc_rework_fix
Matthias Maier [Tue, 5 Jan 2016 10:17:58 +0000 (04:17 -0600)]
Merge pull request #2035 from davydden/slepc_rework_fix

add missing DEAL_II_WITH_SLEPC in petsc_solver.h

8 years agoadd missing DEAL_II_WITH_SLEPC in petsc_solver.h 2035/head
Denis Davydov [Tue, 5 Jan 2016 06:33:43 +0000 (07:33 +0100)]
add missing DEAL_II_WITH_SLEPC in petsc_solver.h

8 years agoMerge pull request #1804 from davydden/slepc_rework
Martin Kronbichler [Mon, 4 Jan 2016 17:12:58 +0000 (18:12 +0100)]
Merge pull request #1804 from davydden/slepc_rework

Allow usage of PETSc solvers/preconditioners in SLEPc spectral transformation

8 years agoMerge pull request #2028 from bangerth/hook-in-code-gallery-2
David Wells [Mon, 4 Jan 2016 14:09:37 +0000 (09:09 -0500)]
Merge pull request #2028 from bangerth/hook-in-code-gallery-2

Generate the legend for the tutorial connection graph automatically.

8 years agoMerge pull request #2031 from kronbichler/cleanup_tests
Wolfgang Bangerth [Fri, 1 Jan 2016 19:30:48 +0000 (13:30 -0600)]
Merge pull request #2031 from kronbichler/cleanup_tests

Only run tests if MPI (and p4est for mg_transfer) is available.

8 years agofurther initialise()->initialize() and alike 1804/head
Denis Davydov [Fri, 1 Jan 2016 14:38:57 +0000 (15:38 +0100)]
further initialise()->initialize() and alike

8 years agomake sure that inside solve() PETSc preconditioner has a matrix set
Denis Davydov [Fri, 1 Jan 2016 11:50:19 +0000 (12:50 +0100)]
make sure that inside solve() PETSc preconditioner has a matrix set

8 years agoMerge pull request #2029 from tamiko/bugfix
Martin Kronbichler [Fri, 1 Jan 2016 09:00:05 +0000 (10:00 +0100)]
Merge pull request #2029 from tamiko/bugfix

Populate Tvmult and Tvmult_add of an inverse_operator correctly

8 years agoOnly run tests if MPI (and p4est for mg_transfer) is available. 2031/head
Martin Kronbichler [Fri, 1 Jan 2016 08:53:55 +0000 (09:53 +0100)]
Only run tests if MPI (and p4est for mg_transfer) is available.

8 years agoMerge pull request #2030 from davydden/step54_input
Timo Heister [Thu, 31 Dec 2015 22:46:49 +0000 (23:46 +0100)]
Merge pull request #2030 from davydden/step54_input

step-54: move input vtk to a separate folder to avoid its removal by …

8 years agostep-54: move input vtk to a separate folder to avoid its removal by make distclean 2030/head
Denis Davydov [Thu, 31 Dec 2015 05:53:56 +0000 (06:53 +0100)]
step-54: move input vtk to a separate folder to avoid its removal by make distclean

8 years agobreak indenting to make astyle happy 2029/head
Matthias Maier [Wed, 30 Dec 2015 17:33:30 +0000 (18:33 +0100)]
break indenting to make astyle happy

8 years agoadd a changes.h entry
Matthias Maier [Wed, 30 Dec 2015 17:30:27 +0000 (18:30 +0100)]
add a changes.h entry

8 years agoAdd a regression test
Matthias Maier [Wed, 30 Dec 2015 17:26:48 +0000 (18:26 +0100)]
Add a regression test

8 years agoMerge pull request #2001 from tjhei/mg_remove_deprecated
Martin Kronbichler [Wed, 30 Dec 2015 17:20:51 +0000 (18:20 +0100)]
Merge pull request #2001 from tjhei/mg_remove_deprecated

remove deprecated stuff in MGConstrainedDoFs

8 years agoBugfix: Populate Tvmult and Tvmult_add of an inverse_operator correctly
Matthias Maier [Wed, 30 Dec 2015 17:08:37 +0000 (18:08 +0100)]
Bugfix: Populate Tvmult and Tvmult_add of an inverse_operator correctly

Fix a typo in linear_operator.h: The transpose operation function-object
Tvmult was accidentally overwritten by Tvmult_add (and the latter left
uninitialized).

8 years agoMerge pull request #2026 from kronbichler/vector_parallel_layout
Wolfgang Bangerth [Wed, 30 Dec 2015 16:26:36 +0000 (10:26 -0600)]
Merge pull request #2026 from kronbichler/vector_parallel_layout

Vectorize one loop

8 years agoAdd instantiations 2026/head
Martin Kronbichler [Wed, 30 Dec 2015 13:45:14 +0000 (14:45 +0100)]
Add instantiations

9 years agoAlso generate the legend for the tutorial connection graph automatically. 2028/head
Wolfgang Bangerth [Tue, 29 Dec 2015 23:50:36 +0000 (17:50 -0600)]
Also generate the legend for the tutorial connection graph automatically.

This allows us to show the actual symbols for each kind, rather than having to
describe them in words.

9 years agoDe-emphasize connections to the code gallery.
Wolfgang Bangerth [Tue, 29 Dec 2015 21:37:42 +0000 (15:37 -0600)]
De-emphasize connections to the code gallery.

9 years agoMerge pull request #2025 from kronbichler/minor_multigrid_cleanup
Wolfgang Bangerth [Tue, 29 Dec 2015 21:23:29 +0000 (15:23 -0600)]
Merge pull request #2025 from kronbichler/minor_multigrid_cleanup

Minor multigrid cleanup

9 years agoMerge pull request #2027 from kronbichler/change_minimum_parallel_grainsize
Wolfgang Bangerth [Tue, 29 Dec 2015 21:22:02 +0000 (15:22 -0600)]
Merge pull request #2027 from kronbichler/change_minimum_parallel_grainsize

Change minimum parallel grainsize of vector to power of 2

9 years agoChange minimum parallel grainsize of vector to power of 2 2027/head
Martin Kronbichler [Tue, 29 Dec 2015 20:16:12 +0000 (21:16 +0100)]
Change minimum parallel grainsize of vector to power of 2

9 years agoVectorize one loop
Martin Kronbichler [Tue, 29 Dec 2015 20:12:40 +0000 (21:12 +0100)]
Vectorize one loop

9 years agoCorrect header name 2025/head
Martin Kronbichler [Tue, 29 Dec 2015 18:59:15 +0000 (19:59 +0100)]
Correct header name

9 years agoRe-enable deallog output in multigrid tutorials.
Martin Kronbichler [Tue, 29 Dec 2015 18:58:50 +0000 (19:58 +0100)]
Re-enable deallog output in multigrid tutorials.

9 years agoMerge pull request #2024 from drwells/update-relaxationtype-example
Wolfgang Bangerth [Tue, 29 Dec 2015 16:37:24 +0000 (10:37 -0600)]
Merge pull request #2024 from drwells/update-relaxationtype-example

Update the documentation of RelaxationType.

9 years agoUpdate the documentation of RelaxationType. 2024/head
David Wells [Tue, 29 Dec 2015 15:55:11 +0000 (10:55 -0500)]
Update the documentation of RelaxationType.

This commit consistently labels classes that satisfy this concept and
clarifies the description of the concept.

9 years agoMerge pull request #2022 from bangerth/fix-markup
Wolfgang Bangerth [Tue, 29 Dec 2015 15:36:19 +0000 (09:36 -0600)]
Merge pull request #2022 from bangerth/fix-markup

Fix markup of references.

9 years agoFix markup of references. 2022/head
Wolfgang Bangerth [Mon, 28 Dec 2015 22:40:53 +0000 (16:40 -0600)]
Fix markup of references.

doxygen interpreted our bibtex-references as C++ code which led
to funny HTML markup. Fortunately, there is a way to tell
doxygen to interpret the code block as just some piece of text
it will not understand regardless of how hard it tries.

9 years agorename initialise() to initialize() and remove an empty line
Denis Davydov [Tue, 29 Dec 2015 09:44:19 +0000 (10:44 +0100)]
rename initialise() to initialize() and remove an empty line

9 years agoslepc: add an entry in changes.h
Denis Davydov [Thu, 17 Dec 2015 15:58:36 +0000 (16:58 +0100)]
slepc: add an entry in changes.h

9 years agoSLEPcWrappers: adjust documentation
Denis Davydov [Thu, 17 Dec 2015 15:50:54 +0000 (16:50 +0100)]
SLEPcWrappers: adjust documentation

9 years agoextend SLEPc unit test to check different preconditioners in KrylovSchur solver
Denis Davydov [Tue, 15 Dec 2015 10:33:14 +0000 (11:33 +0100)]
extend SLEPc unit test to check different preconditioners in KrylovSchur solver

9 years agoallow creation of PETSc preconditioners without a matrix (Jacobi/BoomerAMG)
Denis Davydov [Tue, 15 Dec 2015 10:32:18 +0000 (11:32 +0100)]
allow creation of PETSc preconditioners without a matrix (Jacobi/BoomerAMG)

9 years agoimpliment missing set_initial_vector() for SLEPc solvers
Denis Davydov [Tue, 15 Dec 2015 10:20:11 +0000 (11:20 +0100)]
impliment missing set_initial_vector() for SLEPc solvers

9 years agoSLEPc unit test which uses PETSc preconditioner and solver inside SLEPc
Denis Davydov [Sat, 12 Dec 2015 20:08:37 +0000 (21:08 +0100)]
SLEPc unit test which uses PETSc preconditioner and solver inside SLEPc

9 years agorework SLEPc solver classes
Denis Davydov [Sat, 12 Dec 2015 20:03:03 +0000 (21:03 +0100)]
rework SLEPc solver classes

(i) initialise underlying SLEPc objects in constructors. This allows to...
(ii) apply all the solver settings immediately without using a cache for parameters

9 years agorework SLEPc spectral transformation
Denis Davydov [Sat, 12 Dec 2015 20:00:08 +0000 (21:00 +0100)]
rework SLEPc spectral transformation

(i) create unerlying SLEPc object in constructor; require MPI_Comm.
(ii) add a function to set PETSc solver

9 years agoallow initialisation of PETSc solvers with preconditioners; make SLEPc::Transformatio...
Denis Davydov [Sat, 12 Dec 2015 19:51:22 +0000 (20:51 +0100)]
allow initialisation of PETSc solvers with preconditioners; make SLEPc::Transformation a friend

9 years agoallow creation of PETSc preconditioners without a matrix
Denis Davydov [Sat, 12 Dec 2015 19:18:02 +0000 (20:18 +0100)]
allow creation of PETSc preconditioners without a matrix

9 years agoMerge pull request #2021 from bangerth/document-mpi-terms
David Wells [Tue, 29 Dec 2015 00:21:03 +0000 (19:21 -0500)]
Merge pull request #2021 from bangerth/document-mpi-terms

Document some common MPI terms and link to them.

9 years agoDocument some common MPI terms and link to them. 2021/head
Wolfgang Bangerth [Mon, 28 Dec 2015 21:42:21 +0000 (15:42 -0600)]
Document some common MPI terms and link to them.

9 years agoMerge pull request #1962 from tamiko/constraint
Matthias Maier [Mon, 28 Dec 2015 19:24:05 +0000 (13:24 -0600)]
Merge pull request #1962 from tamiko/constraint

Constraints for LinearOperators

9 years agorename test 1962/head
Matthias Maier [Mon, 28 Dec 2015 12:05:23 +0000 (13:05 +0100)]
rename test

9 years agoUpdate documentation
Matthias Maier [Mon, 28 Dec 2015 11:57:42 +0000 (12:57 +0100)]
Update documentation

9 years ago...
Matthias Maier [Mon, 26 Oct 2015 02:40:08 +0000 (21:40 -0500)]
...

9 years agoaddress comments
Matthias Maier [Sun, 25 Oct 2015 19:14:22 +0000 (14:14 -0500)]
address comments

9 years agoAdd a news/changes.h entry
Matthias Maier [Sat, 24 Oct 2015 17:34:42 +0000 (12:34 -0500)]
Add a news/changes.h entry

9 years agoFix some doxygen issues
Matthias Maier [Sat, 24 Oct 2015 17:31:00 +0000 (12:31 -0500)]
Fix some doxygen issues

9 years agoWrite a glossary entry on how to use the new facility
Matthias Maier [Sat, 24 Oct 2015 17:27:25 +0000 (12:27 -0500)]
Write a glossary entry on how to use the new facility

9 years agoUpdate test and rename to constraint_linear_operator_01
Matthias Maier [Sat, 24 Oct 2015 17:27:04 +0000 (12:27 -0500)]
Update test and rename to constraint_linear_operator_01

9 years agoRefactor into constraint_linear_operator header file
Matthias Maier [Sat, 24 Oct 2015 17:24:54 +0000 (12:24 -0500)]
Refactor into constraint_linear_operator header file

This commit refactors everything into its own header file and addresses a
number of issues:
 - solve (Ct * A C + Id_c) x = Ct (b - Ak)
 - make code compile and refactor implementation
 - rewrite documentation

9 years agoadd relates ConstraintMatrix
ESeNonFossiIo [Fri, 18 Sep 2015 08:44:24 +0000 (10:44 +0200)]
add relates ConstraintMatrix

9 years agovmult_add and Tvmult_add
ESeNonFossiIo [Wed, 9 Sep 2015 11:50:24 +0000 (13:50 +0200)]
vmult_add and Tvmult_add

9 years agodocumentation
ESeNonFossiIo [Mon, 7 Sep 2015 15:50:52 +0000 (17:50 +0200)]
documentation

9 years agoconstraint linear operators
ESeNonFossiIo [Mon, 7 Sep 2015 14:37:55 +0000 (16:37 +0200)]
constraint linear operators

9 years agoMerge pull request #2005 from tjhei/operator_and_named_data
Matthias Maier [Mon, 28 Dec 2015 11:35:13 +0000 (05:35 -0600)]
Merge pull request #2005 from tjhei/operator_and_named_data

remove NamedData and deprecated algorithms::Operator

9 years agoMerge pull request #2020 from asartori86/fix_doc_constraints
Martin Kronbichler [Mon, 28 Dec 2015 10:19:37 +0000 (11:19 +0100)]
Merge pull request #2020 from asartori86/fix_doc_constraints

fixed doc in ConstraintMatrix detailed description

9 years agofixed doc 2020/head
alberto sartori [Mon, 28 Dec 2015 09:57:02 +0000 (10:57 +0100)]
fixed doc

9 years agoMerge pull request #2019 from bangerth/remove-outdated-references
Denis Davydov [Sun, 27 Dec 2015 19:27:14 +0000 (20:27 +0100)]
Merge pull request #2019 from bangerth/remove-outdated-references

Remove references to the pre-historic parallel::distributed::DoFHandler.

9 years agoRemove references to the pre-historic parallel::distributed::DoFHandler. 2019/head
Wolfgang Bangerth [Sun, 27 Dec 2015 19:18:27 +0000 (13:18 -0600)]
Remove references to the pre-historic parallel::distributed::DoFHandler.

Also augment the documentation of one function.

9 years agoMerge pull request #2016 from bangerth/update-step-17
Wolfgang Bangerth [Sun, 27 Dec 2015 19:10:35 +0000 (13:10 -0600)]
Merge pull request #2016 from bangerth/update-step-17

Update the introduction of step-17.

9 years agoUpdate based on review comments. 2016/head
Wolfgang Bangerth [Sun, 27 Dec 2015 19:09:53 +0000 (13:09 -0600)]
Update based on review comments.

9 years agoAdd another paragraph.
Wolfgang Bangerth [Thu, 24 Dec 2015 15:13:15 +0000 (09:13 -0600)]
Add another paragraph.

9 years agoUpdate a glossary entry.
Wolfgang Bangerth [Thu, 24 Dec 2015 05:27:01 +0000 (23:27 -0600)]
Update a glossary entry.

9 years agoUpdate the introduction of step-17.
Wolfgang Bangerth [Thu, 24 Dec 2015 05:26:48 +0000 (23:26 -0600)]
Update the introduction of step-17.

9 years agoMerge pull request #2015 from bangerth/more-vector-vector-to-Table
Martin Kronbichler [Wed, 23 Dec 2015 22:05:35 +0000 (23:05 +0100)]
Merge pull request #2015 from bangerth/more-vector-vector-to-Table

More vector vector to table

9 years agoMerge pull request #2014 from bangerth/remove-unused-classes
Martin Kronbichler [Wed, 23 Dec 2015 22:01:30 +0000 (23:01 +0100)]
Merge pull request #2014 from bangerth/remove-unused-classes

Remove InternalData classes that are unused and apparently have been for a while

9 years agoMerge pull request #2013 from bangerth/convert-vector-of-vector-to-Table2-2
Martin Kronbichler [Wed, 23 Dec 2015 22:00:59 +0000 (23:00 +0100)]
Merge pull request #2013 from bangerth/convert-vector-of-vector-to-Table2-2

Convert vector of vector to Table<2>

9 years agoAlso replace std::vector<std::vector<T>> by Table<2,T> in FE_PolyTensor::InternalData. 2015/head
Wolfgang Bangerth [Wed, 23 Dec 2015 05:38:59 +0000 (23:38 -0600)]
Also replace std::vector<std::vector<T>> by Table<2,T> in FE_PolyTensor::InternalData.

9 years agoAlso replace std::vector<std::vector<T>> by Table<2,T> in FE_Poly::InternalData.
Wolfgang Bangerth [Wed, 23 Dec 2015 04:35:19 +0000 (22:35 -0600)]
Also replace std::vector<std::vector<T>> by Table<2,T> in FE_Poly::InternalData.

9 years agoRemove InternalData classes that are unused and apparently have been for a while. 2014/head
Wolfgang Bangerth [Wed, 23 Dec 2015 15:23:09 +0000 (09:23 -0600)]
Remove InternalData classes that are unused and apparently have been for a while.

9 years agoConvert internal vector<vector<T>> to Table<2,T>. 2013/head
Wolfgang Bangerth [Tue, 22 Dec 2015 22:31:56 +0000 (16:31 -0600)]
Convert internal vector<vector<T>> to Table<2,T>.

This should improve data locality and simplify memory management.

9 years agoAdd more tests.
Wolfgang Bangerth [Tue, 22 Dec 2015 22:31:34 +0000 (16:31 -0600)]
Add more tests.

9 years agoAdd more functions to create ArrayView objects.
Wolfgang Bangerth [Tue, 22 Dec 2015 22:26:37 +0000 (16:26 -0600)]
Add more functions to create ArrayView objects.

9 years agoMerge pull request #2010 from bangerth/convert-vectorslice-to-arrayview
Martin Kronbichler [Wed, 23 Dec 2015 06:48:17 +0000 (07:48 +0100)]
Merge pull request #2010 from bangerth/convert-vectorslice-to-arrayview

Convert the VectorSlice argument of Mapping::transform to ArrayView.

9 years agoConvert the VectorSlice argument of Mapping::transform to ArrayView. 2010/head
Wolfgang Bangerth [Tue, 22 Dec 2015 15:36:40 +0000 (09:36 -0600)]
Convert the VectorSlice argument of Mapping::transform to ArrayView.

This will allow to change the underlying data type in which the data is stored because
ArrayView does not actually store this, in contrast to VectorSlice.

This patch is backward incompatible. However, this area has already been incompatibly changed
in recent months.

9 years agoMerge pull request #2011 from drwells/add-space-to-exception-message
Wolfgang Bangerth [Tue, 22 Dec 2015 21:53:28 +0000 (15:53 -0600)]
Merge pull request #2011 from drwells/add-space-to-exception-message

Add a missing space to an exception message.

9 years agoAdd a missing space to an exception message. 2011/head
David Wells [Tue, 22 Dec 2015 21:47:09 +0000 (16:47 -0500)]
Add a missing space to an exception message.

9 years agoMerge pull request #2007 from tjhei/wrap_comments_lists
Timo Heister [Tue, 22 Dec 2015 20:20:28 +0000 (15:20 -0500)]
Merge pull request #2007 from tjhei/wrap_comments_lists

teach wrapcomments.py about nested lists

9 years agoremove remaining references to NamedData 2005/head
Timo Heister [Tue, 22 Dec 2015 20:19:21 +0000 (15:19 -0500)]
remove remaining references to NamedData

9 years agoMerge pull request #2009 from bangerth/fix-warnings-4
David Wells [Tue, 22 Dec 2015 18:22:22 +0000 (13:22 -0500)]
Merge pull request #2009 from bangerth/fix-warnings-4

Fix a warning.

9 years agoFix a warning. 2009/head
Wolfgang Bangerth [Tue, 22 Dec 2015 15:45:58 +0000 (09:45 -0600)]
Fix a warning.

GeometryInfo<dim>::lines_per_face is zero in 1d and 2d, so the comparison
  e<GeometryInfo<dim>::lines_per_face
is always false (as expected and intended) but the compiler warns about
this. Work around this by using signed integers.

9 years agoMerge pull request #2006 from tjhei/timestepping_cleanup
Martin Kronbichler [Tue, 22 Dec 2015 11:06:36 +0000 (12:06 +0100)]
Merge pull request #2006 from tjhei/timestepping_cleanup

cleanup TimeStepping documentation

9 years agoteach wrapcomments.py about nested lists 2007/head
Timo Heister [Mon, 21 Dec 2015 23:01:40 +0000 (18:01 -0500)]
teach wrapcomments.py about nested lists

9 years agoremove deprecated stuff in MGConstrainedDoFs 2001/head
Timo Heister [Mon, 21 Dec 2015 17:34:41 +0000 (12:34 -0500)]
remove deprecated stuff in MGConstrainedDoFs

Also introduce the replacement have_boundary_indices() for
set_boundary_values() and make sure it works correctly.

9 years agocleanup TimeStepping documentation 2006/head
Timo Heister [Mon, 21 Dec 2015 23:01:05 +0000 (18:01 -0500)]
cleanup TimeStepping documentation

9 years agochangelog
Timo Heister [Mon, 21 Dec 2015 22:39:15 +0000 (17:39 -0500)]
changelog

9 years agoremove NamedData and deprecated algorithms::Operator
Timo Heister [Mon, 21 Dec 2015 19:42:19 +0000 (14:42 -0500)]
remove NamedData and deprecated algorithms::Operator

- remove deprecated algorithms::Operator
- remove references to NamedData

9 years agoMerge pull request #2003 from tjhei/changelog_entries
Martin Kronbichler [Mon, 21 Dec 2015 18:46:25 +0000 (19:46 +0100)]
Merge pull request #2003 from tjhei/changelog_entries

add changelog entries

9 years agoadd changelog entries 2003/head
Timo Heister [Mon, 21 Dec 2015 18:10:31 +0000 (13:10 -0500)]
add changelog entries

9 years agoMerge pull request #2002 from tjhei/remove_warning
Luca Heltai [Mon, 21 Dec 2015 18:08:10 +0000 (19:08 +0100)]
Merge pull request #2002 from tjhei/remove_warning

remove warning

9 years agoMerge pull request #1998 from bangerth/add-array-view
Luca Heltai [Mon, 21 Dec 2015 18:07:28 +0000 (19:07 +0100)]
Merge pull request #1998 from bangerth/add-array-view

Add an ArrayView class.

9 years agoAdd more tests. 1998/head
Wolfgang Bangerth [Mon, 21 Dec 2015 17:55:56 +0000 (11:55 -0600)]
Add more tests.

9 years agoAdd test.
Wolfgang Bangerth [Mon, 21 Dec 2015 04:32:40 +0000 (22:32 -0600)]
Add test.

9 years agoAdd an ArrayView class.
Wolfgang Bangerth [Mon, 21 Dec 2015 04:05:29 +0000 (22:05 -0600)]
Add an ArrayView class.

9 years agoremove warning 2002/head
Timo Heister [Mon, 21 Dec 2015 17:51:33 +0000 (12:51 -0500)]
remove warning

MSVC complains:
E:\dev\deal-git\source\numerics\error_estimator_1d.cc(197): warning C4138: '*/' found outside of comment [E:\dev\deal-git\buildtest\source\numerics\obj_numerics.debug.vcxproj]

9 years agoMerge pull request #1922 from tjhei/build_tests
Luca Heltai [Mon, 21 Dec 2015 13:23:05 +0000 (14:23 +0100)]
Merge pull request #1922 from tjhei/build_tests

build_test fixes for MSVC

9 years agoMerge pull request #1999 from tjhei/crash_in_sparse_matrix_ez
Martin Kronbichler [Mon, 21 Dec 2015 06:57:56 +0000 (07:57 +0100)]
Merge pull request #1999 from tjhei/crash_in_sparse_matrix_ez

fix uninitialized members in SparseMatrixEZ


In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.