]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
6 years agodoc: add incompatibilities news item for create_(boundary_;)mass_matrix
Matthias Maier [Sat, 26 May 2018 03:08:49 +0000 (22:08 -0500)]
doc: add incompatibilities news item for create_(boundary_;)mass_matrix

6 years agodoc: add incompatibilities news item for AffineConstraints/ConstraintMatrix
Matthias Maier [Sat, 26 May 2018 03:04:25 +0000 (22:04 -0500)]
doc: add incompatibilities news item for AffineConstraints/ConstraintMatrix

6 years agoWorkaround: Temporarily define ConstraintMatrix in this header
Matthias Maier [Sat, 26 May 2018 06:59:12 +0000 (01:59 -0500)]
Workaround: Temporarily define ConstraintMatrix in this header

6 years agoBugfix: Add explicit constraint_matrix.h includes to example steps
Matthias Maier [Sat, 26 May 2018 05:39:43 +0000 (00:39 -0500)]
Bugfix: Add explicit constraint_matrix.h includes to example steps

Previously they had been included by chance. Due to the refactoring all
of these includes have to be done explicitly (at least for a short
transition period.)

6 years agoTests: Fix the remaining tests using complex scalars
Daniel Arndt [Mon, 28 May 2018 20:00:05 +0000 (15:00 -0500)]
Tests: Fix the remaining tests using complex scalars

6 years agoTests: Fix nearly all the failing PETSc complex tests
Daniel Arndt [Mon, 28 May 2018 16:22:42 +0000 (18:22 +0200)]
Tests: Fix nearly all the failing PETSc complex tests

6 years agoTests: Fix matrix_free/step-37
Matthias Maier [Mon, 28 May 2018 03:51:25 +0000 (22:51 -0500)]
Tests: Fix matrix_free/step-37

6 years agoTests: Do not include "constraint_matrix.templates.h"
Matthias Maier [Mon, 28 May 2018 03:01:59 +0000 (22:01 -0500)]
Tests: Do not include "constraint_matrix.templates.h"

6 years agoBugfix: Avoid warnings regarding ABI change
Daniel Arndt [Sun, 27 May 2018 16:59:13 +0000 (18:59 +0200)]
Bugfix: Avoid warnings regarding ABI change

6 years agoRCM: Rename some stray leftovers in source
Matthias Maier [Sat, 26 May 2018 02:28:54 +0000 (21:28 -0500)]
RCM: Rename some stray leftovers in source

6 years agoMatrixFree: Allow for non-matching number types in constraint handling
Matthias Maier [Mon, 28 May 2018 00:44:37 +0000 (19:44 -0500)]
MatrixFree: Allow for non-matching number types in constraint handling

In order to facilitate an AffineConstraints<float> in the matrix free
framework:

 - templatify internal ConstraintValues::insert_entries to convert from
   compatible number2 types to Number types (aka exclusively 'double').

6 years agoMatrixFree: Templatify reinit functions
Matthias Maier [Mon, 28 May 2018 00:25:06 +0000 (19:25 -0500)]
MatrixFree: Templatify reinit functions

Unfortunately, we have a bit of a clashing ideology here:

 - The MatrixFree container is motivated by the old ConstraintMatrix
   object. Meaning it expects constraints to be expressed in double.

 - AffineConstraints<number>, however, should be matched with the
   underlying number type. And the rest of the library now assumes that
   this is the case (in particular project_matrix_free and variants...)

In order to facilitate both approaches, we have to slab another "number"
template aorund the reinit functions. That's a bit unfortunate but
cannot be avoided. :-/

6 years agoRCM: Update matrix_free, part 3: matrix_free and dof_info
Matthias Maier [Sun, 27 May 2018 23:12:39 +0000 (18:12 -0500)]
RCM: Update matrix_free, part 3: matrix_free and dof_info

6 years agoRCM: Update matrix_free, part 2: cuda_matrix_free
Matthias Maier [Fri, 25 May 2018 22:31:35 +0000 (17:31 -0500)]
RCM: Update matrix_free, part 2: cuda_matrix_free

6 years agoRCM: Update matrix_free, part 1: update comments (no code changes)
Matthias Maier [Fri, 25 May 2018 22:26:53 +0000 (17:26 -0500)]
RCM: Update matrix_free, part 1: update comments (no code changes)

6 years agoRCM: Update multigrid
Matthias Maier [Sat, 26 May 2018 00:13:38 +0000 (19:13 -0500)]
RCM: Update multigrid

6 years agoRCM: Update mesh_worker
Matthias Maier [Sat, 26 May 2018 02:24:38 +0000 (21:24 -0500)]
RCM: Update mesh_worker

6 years agoRCM: Update numerics, part 3: vector_tools
Matthias Maier [Sat, 26 May 2018 01:21:29 +0000 (20:21 -0500)]
RCM: Update numerics, part 3: vector_tools

6 years agoRCM: Update numerics, part 2: update comments (no code changes)
Matthias Maier [Sat, 26 May 2018 01:02:43 +0000 (20:02 -0500)]
RCM: Update numerics, part 2: update comments (no code changes)

6 years agoRCM: Update numerics, part 1: matrix_tools, matrix_creator
Matthias Maier [Sat, 26 May 2018 00:52:21 +0000 (19:52 -0500)]
RCM: Update numerics, part 1: matrix_tools, matrix_creator

 - Incompatible change: Change the signature of all mass matrix creator
   functions to matching number types for matrices and right-hand side.

6 years agoRCM: Update lac, part 2: constrained_linear_operator
Matthias Maier [Fri, 25 May 2018 22:16:13 +0000 (17:16 -0500)]
RCM: Update lac, part 2: constrained_linear_operator

6 years agoRCM: Update lac, part 1: update comments (no code changes)
Matthias Maier [Fri, 25 May 2018 22:09:14 +0000 (17:09 -0500)]
RCM: Update lac, part 1: update comments (no code changes)

6 years agoRCM: Update non_matching: coupling
Matthias Maier [Fri, 25 May 2018 22:05:49 +0000 (17:05 -0500)]
RCM: Update non_matching: coupling

6 years agoRCM: Update fe: fe, fe_tools
Matthias Maier [Fri, 25 May 2018 21:11:51 +0000 (16:11 -0500)]
RCM: Update fe: fe, fe_tools

6 years agoBugfix: Use correct number type in dof_tools_constraints.(cc|inst.in)
Matthias Maier [Mon, 28 May 2018 19:58:42 +0000 (14:58 -0500)]
Bugfix: Use correct number type in dof_tools_constraints.(cc|inst.in)

DoFTools::make_hanging_node_constraints always uses double internally,
but is also instantiated for std::complex<double>

6 years agoBugfix: Add missing template default parameters to dof_tools.h
Matthias Maier [Sat, 26 May 2018 16:22:02 +0000 (11:22 -0500)]
Bugfix: Add missing template default parameters to dof_tools.h

6 years agoRCM: Update dofs, part 2: dof_tools
Matthias Maier [Fri, 25 May 2018 18:35:17 +0000 (13:35 -0500)]
RCM: Update dofs, part 2: dof_tools

TODO: Complexify make_periodicity_constraints

6 years agoRCM: Update dofs, part 1: dof_accessor
Matthias Maier [Fri, 25 May 2018 18:09:26 +0000 (13:09 -0500)]
RCM: Update dofs, part 1: dof_accessor

6 years agoRCM: Update base
Matthias Maier [Fri, 25 May 2018 18:00:16 +0000 (13:00 -0500)]
RCM: Update base

6 years agoRCM: Remove ConstraintMatrix, RIP 1998 - 2018
Matthias Maier [Fri, 25 May 2018 17:58:37 +0000 (12:58 -0500)]
RCM: Remove ConstraintMatrix, RIP 1998 - 2018

6 years agoWorkaround: Add compatibility instantiations
Matthias Maier [Mon, 28 May 2018 02:58:44 +0000 (21:58 -0500)]
Workaround: Add compatibility instantiations

6 years agoBugfix: Use std::abs instead of std::fabs.
David Wells [Mon, 28 May 2018 02:33:28 +0000 (22:33 -0400)]
Bugfix: Use std::abs instead of std::fabs.

This has a correct overload for std::complex.

6 years agoBugfix: Add missing instantiations
Daniel Arndt [Sun, 27 May 2018 15:30:35 +0000 (17:30 +0200)]
Bugfix: Add missing instantiations

6 years agolac: add number template parameter to affine_constraints.cc and refactor
Matthias Maier [Thu, 24 May 2018 20:56:34 +0000 (15:56 -0500)]
lac: add number template parameter to affine_constraints.cc and refactor

 - Add support for std::complex in internal data structures

 - Refactor special instantiations into .inst.in file.

 - Workaround: add two static_cast<number>(...) to resolve an ambiguity
   when a containerized std::complex is multiplied with another
   std::complex.

 - replace standard comparator for sorting a vector of std::pair with a
   lexicographic ordering where the second component is compared with
   std::abs.

 - templatify and simplify internal data structures

 - simplify internal scratch data (only supports one uniform number type
   now)

6 years agoremove static "default_empty_table"
Matthias Maier [Thu, 24 May 2018 20:41:21 +0000 (15:41 -0500)]
remove static "default_empty_table"

6 years agolac: add number template parameter to affine_constraints.templates.h
Matthias Maier [Thu, 24 May 2018 20:28:30 +0000 (15:28 -0500)]
lac: add number template parameter to affine_constraints.templates.h

6 years agolac: add number template parameter to affine_constraints.h
Matthias Maier [Thu, 24 May 2018 20:15:08 +0000 (15:15 -0500)]
lac: add number template parameter to affine_constraints.h

6 years agolac: Add AffineConstraints class
Matthias Maier [Thu, 24 May 2018 17:09:53 +0000 (12:09 -0500)]
lac: Add AffineConstraints class

For now this is a verbatim copy of the ConstraintMatrix class. The idea
is to templatify this class and after that switch the code base to it.

6 years agolac: remove scratch_data_initializer from constraint_matrix.cc
Matthias Maier [Thu, 24 May 2018 19:27:49 +0000 (14:27 -0500)]
lac: remove scratch_data_initializer from constraint_matrix.cc

6 years agolac/solver_cg.h: Preparatory changes for complex number support
Matthias Maier [Sat, 26 May 2018 02:00:51 +0000 (21:00 -0500)]
lac/solver_cg.h: Preparatory changes for complex number support

6 years agoBugfix: Make sparse_matrix_ez and chunk_sparse_matrix fit for std::complex
Matthias Maier [Sat, 26 May 2018 04:09:29 +0000 (23:09 -0500)]
Bugfix: Make sparse_matrix_ez and chunk_sparse_matrix fit for std::complex

6 years agoBugfix: Fix lapack stev call in TridiagonalMatrix<number>::compute_eigenvalues()
Daniel Arndt [Sat, 26 May 2018 12:18:14 +0000 (14:18 +0200)]
Bugfix: Fix lapack stev call in TridiagonalMatrix<number>::compute_eigenvalues()

6 years agoBugfix: Instantiate two classes for std::complex
Matthias Maier [Sat, 26 May 2018 03:43:01 +0000 (22:43 -0500)]
Bugfix: Instantiate two classes for std::complex

 - instantiate BlockSparseMatrix for std::complex
 - instantiate TridiagonalMatrix for std::complex

6 years agoMerge pull request #6719 from masterleinad/clang_tidy_1
Daniel Arndt [Wed, 6 Jun 2018 15:07:41 +0000 (17:07 +0200)]
Merge pull request #6719 from masterleinad/clang_tidy_1

Fix instantiations of SymmetricTensor

6 years agoMerge pull request #6710 from masterleinad/deprecate_parallel_distributed_vector
Matthias Maier [Wed, 6 Jun 2018 14:15:36 +0000 (09:15 -0500)]
Merge pull request #6710 from masterleinad/deprecate_parallel_distributed_vector

Deprecate parallel::distributed::Vector

6 years agoMerge pull request #6721 from masterleinad/clang_tidy_2
Matthias Maier [Wed, 6 Jun 2018 14:13:53 +0000 (09:13 -0500)]
Merge pull request #6721 from masterleinad/clang_tidy_2

Simplify GridOut::Gnuplot

6 years agoMerge pull request #6720 from masterleinad/clang_tidy_3
Wolfgang Bangerth [Wed, 6 Jun 2018 14:06:52 +0000 (08:06 -0600)]
Merge pull request #6720 from masterleinad/clang_tidy_3

Use static constexpr in VectorizedArray

6 years agoFix instantiations of SymmetricTensor 6719/head
Daniel Arndt [Wed, 6 Jun 2018 00:57:47 +0000 (02:57 +0200)]
Fix instantiations of SymmetricTensor

6 years agoMerge pull request #6717 from masterleinad/clang_tidy_6
Martin Kronbichler [Wed, 6 Jun 2018 10:20:12 +0000 (12:20 +0200)]
Merge pull request #6717 from masterleinad/clang_tidy_6

Fix clang-tidy findings for muParser

6 years agoSimplify GridOut::Gnuplot 6721/head
Daniel Arndt [Tue, 5 Jun 2018 22:25:16 +0000 (00:25 +0200)]
Simplify GridOut::Gnuplot

6 years agoUse static constexpr in VectorizedArray 6720/head
Daniel Arndt [Tue, 5 Jun 2018 22:05:10 +0000 (00:05 +0200)]
Use static constexpr in VectorizedArray

6 years agoFix muparser 6717/head
Daniel Arndt [Tue, 5 Jun 2018 21:12:11 +0000 (23:12 +0200)]
Fix muparser

6 years agoMerge pull request #6716 from tjhei/install_license_md
Matthias Maier [Wed, 6 Jun 2018 05:39:50 +0000 (00:39 -0500)]
Merge pull request #6716 from tjhei/install_license_md

install LICENSE.md not LICENSE

6 years agoinstall LICENSE.md not LICENSE 6716/head
Timo Heister [Wed, 6 Jun 2018 05:30:30 +0000 (13:30 +0800)]
install LICENSE.md not LICENSE

fixes #6706

6 years agoMerge pull request #6712 from masterleinad/fix_cuda_9_2
Denis Davydov [Wed, 6 Jun 2018 03:20:34 +0000 (05:20 +0200)]
Merge pull request #6712 from masterleinad/fix_cuda_9_2

Fix compile error with CUDA 9.2

6 years agoMerge pull request #6713 from bangerth/indent
Matthias Maier [Wed, 6 Jun 2018 01:56:54 +0000 (20:56 -0500)]
Merge pull request #6713 from bangerth/indent

Provide a more readable indentation.

6 years agoProvide a more readable indentation. 6713/head
Wolfgang Bangerth [Tue, 5 Jun 2018 23:47:37 +0000 (17:47 -0600)]
Provide a more readable indentation.

6 years agoFix compile error with CUDA 9.2 6712/head
Daniel Arndt [Tue, 5 Jun 2018 22:08:43 +0000 (00:08 +0200)]
Fix compile error with CUDA 9.2

6 years agoMerge pull request #6707 from tamiko/safeguard
Wolfgang Bangerth [Tue, 5 Jun 2018 15:23:23 +0000 (09:23 -0600)]
Merge pull request #6707 from tamiko/safeguard

CMake: add a safeguard for accidential /source source directory

6 years agoMerge pull request #6706 from tamiko/update_legalese
Wolfgang Bangerth [Tue, 5 Jun 2018 15:21:22 +0000 (09:21 -0600)]
Merge pull request #6706 from tamiko/update_legalese

Update LICENSE file

6 years agoDeprecate parallel::distributed::Vector 6710/head
Daniel Arndt [Mon, 4 Jun 2018 16:38:05 +0000 (18:38 +0200)]
Deprecate parallel::distributed::Vector

6 years agoMake request stronger 6706/head
Matthias Maier [Tue, 5 Jun 2018 02:21:55 +0000 (21:21 -0500)]
Make request stronger

6 years agoCMake: fix path in description 6707/head
Matthias Maier [Tue, 5 Jun 2018 02:15:36 +0000 (21:15 -0500)]
CMake: fix path in description

6 years agoCMake: make safeguard even more clear.
Matthias Maier [Mon, 4 Jun 2018 03:20:49 +0000 (22:20 -0500)]
CMake: make safeguard even more clear.

6 years agoCMake: add a safeguard for accidential /source source directory
Matthias Maier [Sun, 3 Jun 2018 20:32:46 +0000 (15:32 -0500)]
CMake: add a safeguard for accidential /source source directory

This happens remarkably often. Let's improve the error message:
```
  Wrong source directory specified.

  You pointed cmake to the subdirectory "source" instead of the base
  directory.  Make sure that the path in the cmake invocation does not end in
  source.  If you have created a "build" subdirectory, the cmake invocation
  should simply be of the form:

    $ cmake  [...options...]  /..

  (path not ending in ".../source")
```

6 years agoMerge pull request #6700 from masterleinad/adjust_cxx_check_flag
Matthias Maier [Mon, 4 Jun 2018 23:02:22 +0000 (18:02 -0500)]
Merge pull request #6700 from masterleinad/adjust_cxx_check_flag

Modify pushed flags for CLANGAUTODEBUG_BUG

6 years agoStrip the offending flags instead 6700/head
Daniel Arndt [Mon, 4 Jun 2018 22:17:04 +0000 (00:17 +0200)]
Strip the offending flags instead

6 years agoMerge pull request #6709 from masterleinad/fix_warnings_in_tests
Matthias Maier [Mon, 4 Jun 2018 16:56:33 +0000 (11:56 -0500)]
Merge pull request #6709 from masterleinad/fix_warnings_in_tests

Remove some more references to astyle

6 years agoRemove some more references to astyle 6709/head
Daniel Arndt [Mon, 4 Jun 2018 11:44:30 +0000 (13:44 +0200)]
Remove some more references to astyle

6 years agoWolfgang's suggestion - slightly modified
Matthias Maier [Mon, 4 Jun 2018 03:04:13 +0000 (22:04 -0500)]
Wolfgang's suggestion - slightly modified

6 years agoImplement J-P's suggestions
Matthias Maier [Sat, 2 Jun 2018 21:45:18 +0000 (16:45 -0500)]
Implement J-P's suggestions

6 years agoUpdate LICENSE file
Matthias Maier [Sat, 2 Jun 2018 17:38:36 +0000 (12:38 -0500)]
Update LICENSE file

6 years agoMerge pull request #6702 from Zonni/fix-sundials-documentation
Martin Kronbichler [Fri, 1 Jun 2018 14:24:17 +0000 (16:24 +0200)]
Merge pull request #6702 from Zonni/fix-sundials-documentation

Fix sundials documentation

6 years agoBug fixed if output_step function is not defined. Now example in the documentation... 6702/head
Antoni Vidal [Thu, 31 May 2018 17:17:05 +0000 (19:17 +0200)]
Bug fixed if output_step function is not defined. Now example in the documentation works.

6 years agoFixed sundials/ida.h example of use.
Antoni Vidal [Thu, 31 May 2018 16:51:50 +0000 (18:51 +0200)]
Fixed sundials/ida.h example of use.

6 years agoMerge pull request #6699 from masterleinad/fix_warnings_in_tests
Wolfgang Bangerth [Thu, 31 May 2018 12:54:59 +0000 (06:54 -0600)]
Merge pull request #6699 from masterleinad/fix_warnings_in_tests

Fix warnings in tests

6 years agoAlternative solution to mpi/collective_02_dealii_vector 6699/head
Daniel Arndt [Wed, 30 May 2018 20:52:29 +0000 (22:52 +0200)]
Alternative solution to mpi/collective_02_dealii_vector

6 years agoFix warnings in tests, gcc-8
Daniel Arndt [Wed, 30 May 2018 18:57:21 +0000 (20:57 +0200)]
Fix warnings in tests, gcc-8

6 years agoFix warnings in tests, clang-6
Daniel Arndt [Thu, 31 May 2018 06:41:07 +0000 (08:41 +0200)]
Fix warnings in tests, clang-6

6 years agoModify pushed flags for CLANG_AUTODEBUGBUG
Daniel Arndt [Thu, 31 May 2018 06:40:58 +0000 (08:40 +0200)]
Modify pushed flags for CLANG_AUTODEBUGBUG

6 years agoMerge pull request #6670 from bangerth/step-6 6594/head
David Wells [Wed, 30 May 2018 21:31:09 +0000 (17:31 -0400)]
Merge pull request #6670 from bangerth/step-6

Next step in the step-6 introduction.

6 years agoMerge pull request #6697 from masterleinad/avoid_sleep
Daniel Arndt [Wed, 30 May 2018 17:32:14 +0000 (19:32 +0200)]
Merge pull request #6697 from masterleinad/avoid_sleep

Avoid using unistd.h and sleep

6 years agoAvoid using unistd.h and sleep 6697/head
Daniel Arndt [Wed, 30 May 2018 11:25:21 +0000 (13:25 +0200)]
Avoid using unistd.h and sleep

6 years agoMerge pull request #6692 from davydden/feature/timer_output_width
Daniel Arndt [Wed, 30 May 2018 09:34:55 +0000 (11:34 +0200)]
Merge pull request #6692 from davydden/feature/timer_output_width

extend TimerOutput to have dynamic Section width

6 years agouse initlog() 6692/head
Denis Davydov [Tue, 29 May 2018 22:50:01 +0000 (00:50 +0200)]
use initlog()

6 years agoextend TimerOutput to have dynamic Section width
Denis Davydov [Tue, 29 May 2018 13:21:09 +0000 (15:21 +0200)]
extend TimerOutput to have dynamic Section width

6 years agoMerge pull request #6689 from masterleinad/fix_multigrid_transfer_04b
Matthias Maier [Tue, 29 May 2018 05:32:22 +0000 (00:32 -0500)]
Merge pull request #6689 from masterleinad/fix_multigrid_transfer_04b

Fix multigrid/transfer_04b

6 years agoFix multigrid/transfer_04b 6689/head
Daniel Arndt [Mon, 28 May 2018 21:13:15 +0000 (23:13 +0200)]
Fix multigrid/transfer_04b

6 years agoMerge pull request #6674 from drwells/add-merge-tria-tolerance
Wolfgang Bangerth [Mon, 28 May 2018 15:57:57 +0000 (10:57 -0500)]
Merge pull request #6674 from drwells/add-merge-tria-tolerance

Add a tolerance for merge_triangulations.

6 years agoMerge pull request #6680 from bangerth/step-3
David Wells [Mon, 28 May 2018 14:26:02 +0000 (10:26 -0400)]
Merge pull request #6680 from bangerth/step-3

A few updates to the introduction of step-3.

6 years agoA few updates to the introduction of step-3. 6680/head
Wolfgang Bangerth [Sun, 27 May 2018 15:31:33 +0000 (23:31 +0800)]
A few updates to the introduction of step-3.

6 years agoAdd a tolerance for merge_triangulations. 6674/head
David Wells [Thu, 24 May 2018 18:36:03 +0000 (14:36 -0400)]
Add a tolerance for merge_triangulations.

The default setting is not robust with respect to roundoff errors (or
other minor numerical errors).

6 years agoMerge pull request #6677 from bangerth/step-2
David Wells [Mon, 28 May 2018 12:09:42 +0000 (08:09 -0400)]
Merge pull request #6677 from bangerth/step-2

Update some of the introduction of step-2.

6 years agoMerge pull request #6685 from bangerth/doc-update
David Wells [Mon, 28 May 2018 10:36:38 +0000 (06:36 -0400)]
Merge pull request #6685 from bangerth/doc-update

Document arguments in 'contrib/utilities/indent'.

6 years agoDocument arguments in 'contrib/utilities/indent'. 6685/head
Wolfgang Bangerth [Mon, 28 May 2018 07:31:54 +0000 (15:31 +0800)]
Document arguments in 'contrib/utilities/indent'.

6 years agoUniformly use capital letters at the top of comments.
Wolfgang Bangerth [Mon, 28 May 2018 07:24:31 +0000 (15:24 +0800)]
Uniformly use capital letters at the top of comments.

6 years agoAddress David Wells' comments. 6670/head
Wolfgang Bangerth [Sun, 27 May 2018 03:41:21 +0000 (11:41 +0800)]
Address David Wells' comments.

6 years agoUpdate some of the introduction of step-2. 6677/head
Wolfgang Bangerth [Sun, 27 May 2018 05:55:48 +0000 (13:55 +0800)]
Update some of the introduction of step-2.

6 years agoMerge pull request #6682 from masterleinad/fix_complex_petsc
Daniel Arndt [Sun, 27 May 2018 21:38:36 +0000 (23:38 +0200)]
Merge pull request #6682 from masterleinad/fix_complex_petsc

Fix undefined reference for PETSc complex scalar type

6 years agoFix undefined reference for PETSc complex scalar type 6682/head
Daniel Arndt [Sun, 27 May 2018 18:57:02 +0000 (20:57 +0200)]
Fix undefined reference for PETSc complex scalar type


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.