]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
2 years agoMerge pull request #13353 from drwells/uncentered-hyper-ball-balanced
David Wells [Thu, 10 Feb 2022 02:22:21 +0000 (21:22 -0500)]
Merge pull request #13353 from drwells/uncentered-hyper-ball-balanced

make GridGenerator::hyper_ball_balanced() work with nonzero origins.

2 years agomake GridGenerator::hyper_ball_balanced() work with nonzero origins. 13353/head
David Wells [Wed, 9 Feb 2022 22:25:29 +0000 (17:25 -0500)]
make GridGenerator::hyper_ball_balanced() work with nonzero origins.

2 years agoMerge pull request #13343 from peterrum/initialize_matrices
Peter Munch [Wed, 9 Feb 2022 16:36:00 +0000 (17:36 +0100)]
Merge pull request #13343 from peterrum/initialize_matrices

Add MGSmootherPrecondition::initialize_matrices()

2 years agoMerge pull request #13350 from tamiko/performance_tests_01
Peter Munch [Wed, 9 Feb 2022 16:25:42 +0000 (17:25 +0100)]
Merge pull request #13350 from tamiko/performance_tests_01

Add performance testing framework: preparatory refactoring

2 years agoTestsuite: do not use 0 for task limit 13350/head
Matthias Maier [Wed, 9 Feb 2022 12:38:16 +0000 (06:38 -0600)]
Testsuite: do not use 0 for task limit

2 years agodoc: Update documentation
Matthias Maier [Wed, 9 Feb 2022 10:37:17 +0000 (04:37 -0600)]
doc: Update documentation

2 years agoCMake: support "threads=N" and "threads=max" statements for tests
Matthias Maier [Wed, 9 Feb 2022 09:58:11 +0000 (03:58 -0600)]
CMake: support "threads=N" and "threads=max" statements for tests

2 years agoCMake: Support "mpirun=max" statement
Matthias Maier [Wed, 9 Feb 2022 00:37:20 +0000 (18:37 -0600)]
CMake: Support "mpirun=max" statement

2 years agoUpdate documentation, pass through variables
Matthias Maier [Tue, 8 Feb 2022 23:59:14 +0000 (17:59 -0600)]
Update documentation, pass through variables

2 years agoTestsuite: Allow to set deal.II thread pool via TEST_N_THREADS
Matthias Maier [Tue, 8 Feb 2022 23:47:14 +0000 (17:47 -0600)]
Testsuite: Allow to set deal.II thread pool via TEST_N_THREADS

2 years agoCMake: add a TEST_THREAD_LIMIT variable to enforce thread limits
Matthias Maier [Tue, 8 Feb 2022 23:20:10 +0000 (17:20 -0600)]
CMake: add a TEST_THREAD_LIMIT variable to enforce thread limits

2 years agoCMake: add a TEST_MPI_RANK_LIMIT variable to enforce a limit on MPI ranks
Matthias Maier [Tue, 8 Feb 2022 22:42:42 +0000 (16:42 -0600)]
CMake: add a TEST_MPI_RANK_LIMIT variable to enforce a limit on MPI ranks

2 years agoMerge pull request #13349 from kinnewig/test_fe_nedelec_sz_hessian_divergence_theorem
Martin Kronbichler [Wed, 9 Feb 2022 07:56:05 +0000 (08:56 +0100)]
Merge pull request #13349 from kinnewig/test_fe_nedelec_sz_hessian_divergence_theorem

Reduce the runtime of the test fe_nedelec_sz_hessian_divergence_theorem

2 years agoTest only with unrefined hyper_ball 13349/head
Sebastian Kinnewig [Tue, 8 Feb 2022 23:05:06 +0000 (00:05 +0100)]
Test only with unrefined hyper_ball

2 years agoCMake: add "performance" category
Matthias Maier [Tue, 8 Feb 2022 22:14:20 +0000 (16:14 -0600)]
CMake: add "performance" category

2 years agoMerge pull request #13339 from bangerth/newline
David Wells [Mon, 7 Feb 2022 18:39:35 +0000 (13:39 -0500)]
Merge pull request #13339 from bangerth/newline

Save a few cycles for single-character output.

2 years agoMerge pull request #13325 from tamiko/cmake_fix_1
Daniel Arndt [Mon, 7 Feb 2022 15:04:16 +0000 (10:04 -0500)]
Merge pull request #13325 from tamiko/cmake_fix_1

2 years agoMerge pull request #13338 from pengfej/fbranch
Wolfgang Bangerth [Mon, 7 Feb 2022 13:08:07 +0000 (06:08 -0700)]
Merge pull request #13338 from pengfej/fbranch

correcting some notations

2 years agoMerge pull request #13344 from marcfehling/pipe-boundary
Wolfgang Bangerth [Mon, 7 Feb 2022 13:07:49 +0000 (06:07 -0700)]
Merge pull request #13344 from marcfehling/pipe-boundary

Fix boundary IDs for `pipe_junction`.

2 years agoAdd MGSmootherPrecondition::initialize_matrices() 13343/head
Peter Munch [Sun, 6 Feb 2022 07:32:18 +0000 (08:32 +0100)]
Add MGSmootherPrecondition::initialize_matrices()

2 years agoMerge pull request #13340 from peterrum/ldv_assert_empty_vector
Peter Munch [Mon, 7 Feb 2022 07:09:52 +0000 (08:09 +0100)]
Merge pull request #13340 from peterrum/ldv_assert_empty_vector

Fix assert message for empty vector

2 years agoFix boundary IDs for `pipe_junction`. 13344/head
Marc Fehling [Mon, 7 Feb 2022 03:47:39 +0000 (20:47 -0700)]
Fix boundary IDs for `pipe_junction`.

2 years agoMore changes of single-character things. 13339/head
Wolfgang Bangerth [Sat, 5 Feb 2022 23:34:30 +0000 (16:34 -0700)]
More changes of single-character things.

2 years agocorrecting some notations 13338/head
Pengfei Jia [Thu, 3 Feb 2022 23:47:50 +0000 (18:47 -0500)]
correcting some notations

2 years agoMerge pull request #13342 from peterrum/cl_name
Martin Kronbichler [Sun, 6 Feb 2022 10:48:59 +0000 (11:48 +0100)]
Merge pull request #13342 from peterrum/cl_name

Fix name of change-log entry

2 years agoFix name of change-log entry 13342/head
Peter Munch [Sun, 6 Feb 2022 06:55:30 +0000 (07:55 +0100)]
Fix name of change-log entry

2 years agoFix assert message for empty vector 13340/head
Peter Munch [Sun, 6 Feb 2022 06:01:38 +0000 (07:01 +0100)]
Fix assert message for empty vector

2 years agoAlso replace single-character output for things other than newlines.
Wolfgang Bangerth [Sat, 5 Feb 2022 23:32:51 +0000 (16:32 -0700)]
Also replace single-character output for things other than newlines.

2 years agoadd a changelog entry 13325/head
Matthias Maier [Sat, 5 Feb 2022 23:26:03 +0000 (17:26 -0600)]
add a changelog entry

2 years agoSave a few cycles for single-character output.
Wolfgang Bangerth [Sat, 5 Feb 2022 22:48:43 +0000 (15:48 -0700)]
Save a few cycles for single-character output.

2 years agodoc: Update new documentation to reflect new CMake minimum version
Matthias Maier [Sat, 5 Feb 2022 20:57:37 +0000 (14:57 -0600)]
doc: Update new documentation to reflect new CMake minimum version

2 years agoCMake: Finish refactoring of PACKAGE_HANDLE macro
Matthias Maier [Sat, 5 Feb 2022 20:53:47 +0000 (14:53 -0600)]
CMake: Finish refactoring of PACKAGE_HANDLE macro

 - address FIXMEs
 - address reviews

2 years agoCMake: Properly handle FEATURE_EXECUTABLE
Matthias Maier [Wed, 2 Feb 2022 13:06:16 +0000 (07:06 -0600)]
CMake: Properly handle FEATURE_EXECUTABLE

2 years agoCMake: Add an assert to DEAL_II_PACKAGE_HANDLE
Matthias Maier [Wed, 2 Feb 2022 13:02:16 +0000 (07:02 -0600)]
CMake: Add an assert to DEAL_II_PACKAGE_HANDLE

2 years agoCMake: Clean up FindSYMENGINE.cmake
Matthias Maier [Wed, 2 Feb 2022 11:04:57 +0000 (05:04 -0600)]
CMake: Clean up FindSYMENGINE.cmake

2 years agoCMake: Clean up FindCUDA.cmake
Matthias Maier [Wed, 2 Feb 2022 11:01:58 +0000 (05:01 -0600)]
CMake: Clean up FindCUDA.cmake

2 years agoCMake: Clean up FindLAPACK.cmake
Matthias Maier [Wed, 2 Feb 2022 10:58:04 +0000 (04:58 -0600)]
CMake: Clean up FindLAPACK.cmake

2 years agoCMake: Modernize DEAL_II_PACKAGE_HANDLE macro
Matthias Maier [Tue, 1 Feb 2022 16:24:45 +0000 (10:24 -0600)]
CMake: Modernize DEAL_II_PACKAGE_HANDLE macro

 * simplify logic by removing unnecessary booleans

 * use temporary variables to accumulate lists/string and override
   canonical names at end

2 years agoRequire CMake 3.3 or newer
Matthias Maier [Tue, 1 Feb 2022 16:12:31 +0000 (10:12 -0600)]
Require CMake 3.3 or newer

2 years agoMerge pull request #13328 from peterrum/initialize_cell_data_vector
Martin Kronbichler [Fri, 4 Feb 2022 07:40:01 +0000 (08:40 +0100)]
Merge pull request #13328 from peterrum/initialize_cell_data_vector

Add MatrixFree::initialize_cell_data_vector()

2 years agoMerge pull request #13327 from peterrum/fe_eval_reinit_array_mapping_on_the_fly
Martin Kronbichler [Fri, 4 Feb 2022 07:39:45 +0000 (08:39 +0100)]
Merge pull request #13327 from peterrum/fe_eval_reinit_array_mapping_on_the_fly

FEEval::reinit(std::array): use MappingDataOnTheFly

2 years agoMerge pull request #13334 from tjhei/doc_fixes
Martin Kronbichler [Fri, 4 Feb 2022 07:39:26 +0000 (08:39 +0100)]
Merge pull request #13334 from tjhei/doc_fixes

documentation fixes

2 years agoMerge pull request #13337 from drwells/fix-deduction-matrix-free
Martin Kronbichler [Fri, 4 Feb 2022 07:39:17 +0000 (08:39 +0100)]
Merge pull request #13337 from drwells/fix-deduction-matrix-free

Fix deduction matrix free

2 years agoMerge pull request #13333 from tjhei/move_implementation_out_of_class_declaration
David Wells [Thu, 3 Feb 2022 20:32:20 +0000 (15:32 -0500)]
Merge pull request #13333 from tjhei/move_implementation_out_of_class_declaration

PreconditionIdentity: move implementation out of declaration

2 years agoMerge pull request #13336 from tjhei/vtu_newline
David Wells [Thu, 3 Feb 2022 20:32:04 +0000 (15:32 -0500)]
Merge pull request #13336 from tjhei/vtu_newline

VTU: put closing XML on separate line

2 years agoMerge pull request #13332 from zjiaqi2018/fix-formula
Wolfgang Bangerth [Thu, 3 Feb 2022 20:23:39 +0000 (13:23 -0700)]
Merge pull request #13332 from zjiaqi2018/fix-formula

fix a formula

2 years agoMerge pull request #13335 from tjhei/solver_control_explicit
Wolfgang Bangerth [Thu, 3 Feb 2022 20:23:13 +0000 (13:23 -0700)]
Merge pull request #13335 from tjhei/solver_control_explicit

SolverControl: make constructors explicit

2 years agoMerge pull request #13330 from nfehn/forward_declaration_mapping_q
Martin Kronbichler [Thu, 3 Feb 2022 18:56:00 +0000 (19:56 +0100)]
Merge pull request #13330 from nfehn/forward_declaration_mapping_q

remove forward declarations of MappingQ

2 years agoUpdate include/deal.II/lac/precondition.h 13334/head
Timo Heister [Thu, 3 Feb 2022 18:52:04 +0000 (13:52 -0500)]
Update include/deal.II/lac/precondition.h

Co-authored-by: Daniel Arndt <arndtd@ornl.gov>
2 years agoMerge pull request #13331 from tjhei/remove_some_stray_comments
Daniel Arndt [Thu, 3 Feb 2022 18:50:26 +0000 (13:50 -0500)]
Merge pull request #13331 from tjhei/remove_some_stray_comments

2 years agoAugment a test to verify detection. 13337/head
David Wells [Thu, 3 Feb 2022 17:12:41 +0000 (12:12 -0500)]
Augment a test to verify detection.

2 years agoPreconditionIdentity: move implementation out of declaration 13333/head
Timo Heister [Thu, 3 Feb 2022 15:58:02 +0000 (10:58 -0500)]
PreconditionIdentity: move implementation out of declaration

2 years agoupdate tests 13336/head
Timo Heister [Thu, 3 Feb 2022 16:45:50 +0000 (11:45 -0500)]
update tests

2 years agoFix initialize_dof_vector_t.
David Wells [Thu, 3 Feb 2022 15:00:00 +0000 (10:00 -0500)]
Fix initialize_dof_vector_t.

The correct function requires a vector reference input argument.

2 years agoSolverControl: make constructors explicit 13335/head
Timo Heister [Thu, 3 Feb 2022 16:02:57 +0000 (11:02 -0500)]
SolverControl: make constructors explicit

2 years agodocumentation fixes
Timo Heister [Thu, 3 Feb 2022 16:01:38 +0000 (11:01 -0500)]
documentation fixes

2 years agofix a formula 13332/head
Jiaqi Zhang [Thu, 3 Feb 2022 15:41:24 +0000 (10:41 -0500)]
fix a formula

2 years agoremove two wrong file comments 13331/head
Timo Heister [Thu, 3 Feb 2022 15:30:30 +0000 (10:30 -0500)]
remove two wrong file comments

2 years agoaddress forward declaration of MappingQCache 13330/head
Niklas Fehn [Thu, 3 Feb 2022 13:11:47 +0000 (14:11 +0100)]
address forward declaration of MappingQCache

2 years agoremove forward declarations of MappingQ
Niklas Fehn [Thu, 3 Feb 2022 12:45:10 +0000 (13:45 +0100)]
remove forward declarations of MappingQ

2 years agoMerge pull request #13315 from mschreter/matrixfree_compute_diagonal_vectortype
Martin Kronbichler [Thu, 3 Feb 2022 10:35:26 +0000 (11:35 +0100)]
Merge pull request #13315 from mschreter/matrixfree_compute_diagonal_vectortype

`MatrixFreeTools::compute_diagonal`: introduce template parameter `VectorType`

2 years agoAdd MatrixFree::initialize_cell_data_vector() and ::initialize_face_data_vector() 13328/head
Peter Munch [Thu, 3 Feb 2022 10:22:16 +0000 (11:22 +0100)]
Add MatrixFree::initialize_cell_data_vector() and ::initialize_face_data_vector()

2 years agoFEEval::reinit(std::array): use MappingDataOnTheFly 13327/head
Peter Munch [Thu, 3 Feb 2022 09:42:03 +0000 (10:42 +0100)]
FEEval::reinit(std::array): use MappingDataOnTheFly

2 years agoadd typename VectorType to compute_diagonal 13315/head
Magdalena Schreter [Mon, 31 Jan 2022 15:22:46 +0000 (16:22 +0100)]
add typename VectorType to compute_diagonal

Co-authored-by: peterrum <peterrmuench@gmail.com>
2 years agoMerge pull request #13319 from tamiko/update_find_hdf5
Daniel Arndt [Wed, 2 Feb 2022 16:09:53 +0000 (11:09 -0500)]
Merge pull request #13319 from tamiko/update_find_hdf5

2 years agoMerge pull request #13320 from bangerth/is_detected
Matthias Maier [Wed, 2 Feb 2022 14:26:23 +0000 (08:26 -0600)]
Merge pull request #13320 from bangerth/is_detected

Replace is_detected (type) by is_supported_operation (variable).

2 years agoMerge pull request #13322 from bangerth/ca-empty
Matthias Maier [Wed, 2 Feb 2022 14:22:40 +0000 (08:22 -0600)]
Merge pull request #13322 from bangerth/ca-empty

Deal with empty function objects in CA algorithms.

2 years agoMerge pull request #13324 from kronbichler/fix_warning
Matthias Maier [Wed, 2 Feb 2022 14:21:44 +0000 (08:21 -0600)]
Merge pull request #13324 from kronbichler/fix_warning

Fix warning regarding unused parameter

2 years agoCMake: Unconditionally require MPI for HDF5 13319/head
Matthias Maier [Wed, 2 Feb 2022 14:18:15 +0000 (08:18 -0600)]
CMake: Unconditionally require MPI for HDF5

2 years agoUpdate github action
Matthias Maier [Wed, 2 Feb 2022 10:24:07 +0000 (04:24 -0600)]
Update github action

2 years agoCMake: FindHDF5.cmake - remove workaround
Matthias Maier [Wed, 2 Feb 2022 10:27:53 +0000 (04:27 -0600)]
CMake: FindHDF5.cmake - remove workaround

2 years agoCMake: Put FindHDF5 hints back in place
Matthias Maier [Wed, 2 Feb 2022 10:26:28 +0000 (04:26 -0600)]
CMake: Put FindHDF5 hints back in place

2 years agoCMake: call CMake's FindHDF5 instead of trying to find everything by hand
Matthias Maier [Tue, 1 Feb 2022 15:31:15 +0000 (09:31 -0600)]
CMake: call CMake's FindHDF5 instead of trying to find everything by hand

2 years agoFix warning regarding unused parameter 13324/head
Martin Kronbichler [Wed, 2 Feb 2022 09:23:53 +0000 (10:23 +0100)]
Fix warning regarding unused parameter

2 years agoMerge pull request #13316 from peterrum/compute_diagonal_initialize
Martin Kronbichler [Wed, 2 Feb 2022 08:02:22 +0000 (09:02 +0100)]
Merge pull request #13316 from peterrum/compute_diagonal_initialize

MatrixFreeTools::compute_diagonal(): do not initialize vector

2 years agoMerge pull request #13323 from bangerth/normalize
Martin Kronbichler [Wed, 2 Feb 2022 07:58:19 +0000 (08:58 +0100)]
Merge pull request #13323 from bangerth/normalize

Micro simplication.

2 years agoAdjust tests. 13320/head
Wolfgang Bangerth [Tue, 1 Feb 2022 19:09:31 +0000 (12:09 -0700)]
Adjust tests.

2 years agoMicro simplication. 13323/head
Wolfgang Bangerth [Tue, 1 Feb 2022 19:03:34 +0000 (12:03 -0700)]
Micro simplication.

2 years agoDeal with empty function objects in CA algorithms. 13322/head
Wolfgang Bangerth [Tue, 1 Feb 2022 18:58:12 +0000 (11:58 -0700)]
Deal with empty function objects in CA algorithms.

2 years agoAlso convert the has_begin_and_end query.
Wolfgang Bangerth [Tue, 1 Feb 2022 18:04:23 +0000 (11:04 -0700)]
Also convert the has_begin_and_end query.

2 years agoAlso convert the is_not_parallel_vector trait.
Wolfgang Bangerth [Tue, 1 Feb 2022 17:58:33 +0000 (10:58 -0700)]
Also convert the is_not_parallel_vector trait.

2 years agoReplace is_detected (type) by is_supported_operation (variable).
Wolfgang Bangerth [Tue, 1 Feb 2022 17:31:40 +0000 (10:31 -0700)]
Replace is_detected (type) by is_supported_operation (variable).

Also provide a bunch of doc strings for the involved functions. Then also replace
all of the current uses of the is_detected type by constexpr variables.

2 years agoMatrixFreeTools::compute_diagonal(): do not initialize vector 13316/head
Peter Munch [Tue, 1 Feb 2022 09:19:42 +0000 (10:19 +0100)]
MatrixFreeTools::compute_diagonal(): do not initialize vector

2 years agoMerge pull request #13312 from peterrum/gc_restrict_and_add_dg_fix
Martin Kronbichler [Mon, 31 Jan 2022 20:38:26 +0000 (21:38 +0100)]
Merge pull request #13312 from peterrum/gc_restrict_and_add_dg_fix

Fix MGTwoLevelTransfer::restrict_and_add()

2 years agoMerge pull request #13272 from bangerth/ca-interface
Peter Munch [Mon, 31 Jan 2022 16:55:57 +0000 (17:55 +0100)]
Merge pull request #13272 from bangerth/ca-interface

Switch the consensus algorithms interface to using function objects.

2 years agoFix MGTwoLevelTransfer::restrict_and_add() 13312/head
Peter Munch [Mon, 31 Jan 2022 16:54:22 +0000 (17:54 +0100)]
Fix MGTwoLevelTransfer::restrict_and_add()

2 years agoMerge pull request #13260 from peterrum/feeval_reinit_array
Martin Kronbichler [Mon, 31 Jan 2022 14:57:29 +0000 (15:57 +0100)]
Merge pull request #13260 from peterrum/feeval_reinit_array

FEEval: allow to reinit with a batch with arbitrary cells

2 years agoMerge pull request #13281 from peterrum/feeval_face_data
Martin Kronbichler [Mon, 31 Jan 2022 14:56:52 +0000 (15:56 +0100)]
Merge pull request #13281 from peterrum/feeval_face_data

Introduce FEEval::*_face_data()

2 years agoMerge pull request #13311 from peterrum/is_interior_face
Martin Kronbichler [Mon, 31 Jan 2022 14:56:33 +0000 (15:56 +0100)]
Merge pull request #13311 from peterrum/is_interior_face

FEEval: rename get_is_interior_face() to is_interior_face()

2 years agoIntroduce FEEval::*_face_data() 13281/head
Peter Munch [Sun, 23 Jan 2022 17:50:59 +0000 (18:50 +0100)]
Introduce FEEval::*_face_data()

2 years agoFEEval: allow to reinit with a batch with arbitrary cells 13260/head
Peter Munch [Tue, 18 Jan 2022 11:22:42 +0000 (12:22 +0100)]
FEEval: allow to reinit with a batch with arbitrary cells

2 years agoFEEval: rename get_is_interior_face() to is_interior_face() 13311/head
Peter Munch [Mon, 31 Jan 2022 07:59:26 +0000 (08:59 +0100)]
FEEval: rename get_is_interior_face() to is_interior_face()

2 years agoMerge pull request #13309 from marcfehling/compute-mean-hp
Wolfgang Bangerth [Mon, 31 Jan 2022 00:55:06 +0000 (17:55 -0700)]
Merge pull request #13309 from marcfehling/compute-mean-hp

Added hp-version for `VectorTools::compute_mean_value()`.

2 years agoMerge pull request #12757 from simonsticko/step85
Martin Kronbichler [Sat, 29 Jan 2022 17:03:11 +0000 (18:03 +0100)]
Merge pull request #12757 from simonsticko/step85

Add a CutFEM tutorial as step-85

2 years agoAdded hp-version for `VectorTools::compute_mean_value()`. 13309/head
Marc Fehling [Fri, 28 Jan 2022 17:25:22 +0000 (18:25 +0100)]
Added hp-version for `VectorTools::compute_mean_value()`.

2 years agoAdd a changelog entry for step-85. 12757/head
Simon Sticko [Fri, 7 Jan 2022 12:58:08 +0000 (13:58 +0100)]
Add a changelog entry for step-85.

2 years agoAdd a CutFEM tutorial as step-85
Simon Sticko [Sun, 2 Jan 2022 10:27:50 +0000 (11:27 +0100)]
Add a CutFEM tutorial as step-85

This step shows how the NonMatching classes: MeshClassifier,
FEImmersedSurfaceValues and NonMatching::FEValues are intended to work
together. This is done by solving the Poisson equation on a hypercube
mesh where the domain is described by a level set function

2 years agoMerge pull request #12771 from kinnewig/FE_NedelecSZ_hessians
Martin Kronbichler [Sat, 29 Jan 2022 09:49:23 +0000 (10:49 +0100)]
Merge pull request #12771 from kinnewig/FE_NedelecSZ_hessians

Add Hessian to FE_NedelecSZ

2 years agoMerge pull request #13305 from bangerth/assertion-2
Martin Kronbichler [Fri, 28 Jan 2022 15:06:38 +0000 (16:06 +0100)]
Merge pull request #13305 from bangerth/assertion-2

Add a missing assertion.

2 years agoMerge pull request #13307 from bangerth/manifolds
Matthias Maier [Fri, 28 Jan 2022 13:14:08 +0000 (07:14 -0600)]
Merge pull request #13307 from bangerth/manifolds

Updates to manifolds classes


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.