]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Some minor edits.
authorWolfgang Bangerth <bangerth@colostate.edu>
Mon, 15 Apr 2019 01:10:23 +0000 (19:10 -0600)
committerDaniel Garcia-Sanchez <daniel.garcia-sanchez@insp.upmc.fr>
Thu, 25 Apr 2019 14:44:44 +0000 (16:44 +0200)
examples/step-62/doc/intro.dox
examples/step-62/step-62.cc

index 7ac70d5c86c48447246865765eeda4c0c31cc88b..3483a4ee09aa074251d00afa4f7460dd049a5db3 100644 (file)
@@ -33,8 +33,8 @@ The simulations of this tutorial are done in 2D;
 although because we use templates it is very easy to convert this program to 3D.
 There are two regimes that depend on the waveguide width:
 - Single mode: In this case the width of the structure is much
-  smaller that the wavelength, therefore the waveguide is single mode.
-  This case can be solved either with FEM (approach that we take here) or with
+  smaller than the wavelength, therefore the waveguide is single mode.
+  This case can be solved either with FEM (the approach that we take here) or with
   a simple semi-analytical
   [1D transfer matrix formalism](https://en.wikipedia.org/wiki/Transfer_matrix).
 - Multimode: In this case the width of the structure is larger than the
@@ -42,7 +42,7 @@ There are two regimes that depend on the waveguide width:
   This case can be solved using FEM
   or with a [scattering matrix formalism](https://doi.org/10.1103/PhysRevA.94.033813).
   Although we do not study this case in this tutorial, it is very easy to reach the multimode
-  by increasing the parameter waveguide width (`dimension_y` in the jupyter notebook).
+  case by increasing the parameter waveguide width (`dimension_y` in the jupyter notebook).
 
 The simulations of this tutorial are performed in the frequency domain.
 To calculate the transmission spectrum, we use a
@@ -51,12 +51,12 @@ that is commonly used in time domain [FDTD](https://en.wikipedia.org/wiki/Finite
 simulations. A pulse at a certain frequency is generated on the left side of the
 structure and the transmitted energy is measured on the right side of the structure.
 The simulation is run twice. First, we run the simulation with the phononic
-structure and measure the transmitted energy.
+structure and measure the transmitted energy:
 
 <img alt="Phononic superlattice cavity" src="https://raw.githubusercontent.com/dangars/dealii/phononic-cavity/examples/step-62/doc/step-62.02.svg?sanitize=true" height="200" />
 
-Then we run the simulation without the phononic structure and measure the transmitted
-energy; we use the simulation without the structure for the calibration.
+Then, we run the simulation without the phononic structure and measure the transmitted
+energy; we use the simulation without the structure for the calibration:
 
 <img alt="Phononic superlattice cavity" src="https://raw.githubusercontent.com/dangars/dealii/phononic-cavity/examples/step-62/doc/step-62.03.svg?sanitize=true" height="200" />
 
@@ -66,21 +66,28 @@ We repeat this procedure for each frequency step.
 
 
 <h3>Elastic equations</h3>
-The elastic equations in the time domain are 
+What we want to simulate here is the transmission of elastic
+waves. Consequently, the right description of the problem uses the
+elastic equations, which in the time domain are given by
 @f[
 \rho\partial_{tt} u_i - \partial_j (c_{ijkl} \varepsilon_{kl}) = f_i,
 \qquad i=0,1,2
 @f]
-where the stiffness tensor $c_{ijkl}$ depends on the spacial coordinates and
-the strain is given by
+where the stiffness tensor $c_{ijkl}$ depends on the spatial coordinates and
+the strain is the symmetrized gradient of the displacement, given by
 @f[
 \varepsilon_{kl} =\frac{1}{2}(\partial_k u_l + \partial_l u_k)
 @f]
 
 [A perfectly matched layer (PML)](https://en.wikipedia.org/wiki/Perfectly_matched_layer)
 can be used to truncate the solution at the boundaries.
-A PML is a transformation that results in a complex coordinate stretching.
-The elastic equations in the frequency domain read as follows
+A PML is a transformation that results in a complex coordinate
+stretching.
+
+Instead of a time domain approach, this tutorial program converts the
+equations above into the frequency domain by performing a Fourier
+transform with regard to the time variable.
+The elastic equations in the frequency domain then read as follows
 @f{eqnarray*}
 \nabla\cdot(\boldsymbol{\bar\sigma} \xi \boldsymbol{\Lambda})&=&-\omega^2\rho\xi\mathbf{\bar u}\\
 \boldsymbol{\bar \sigma} &=&\mathbf{C}\boldsymbol{\bar\varepsilon}\\
index 65e4d9acfb9b0bcff79b1f3a5331ade18d0a5b9e..e67a041d1ac35452fe511975ae78f9f8a7033b8e 100644 (file)
@@ -77,16 +77,16 @@ namespace step62
   // @sect3{Auxiliary classes and functions}
   // The following classes are used to store the parameters of the simulation.
 
-  // @sect4{`RightHandSide` class}
+  // @sect4{The `RightHandSide` class}
   // This class is used to define the force pulse on the left side of the
-  // structure.
+  // structure:
   template <int dim>
   class RightHandSide : public Function<dim>
   {
   public:
     RightHandSide(HDF5::Group &data);
     virtual double value(const Point<dim> & p,
-                         const unsigned int component) const;
+                         const unsigned int component) const override;
 
   private:
     // `data` is the HDF5::Group in which all the simulation results will be
@@ -113,8 +113,9 @@ namespace step62
     const unsigned int force_component = 0;
   };
 
-  // @sect4{`PML` class}
-  // This class is used to define the shape of the PML.
+  // @sect4{The `PML` class}
+  // This class is used to define the shape of the Perfectly Matches
+  // Layer (PML) to absorb waves traveling towards the boundary:
   template <int dim>
   class PML : public Function<dim, std::complex<double>>
   {
@@ -144,7 +145,7 @@ namespace step62
 
 
 
-  // @sect4{`Rho` class}
+  // @sect4{The `Rho` class}
   // This class is used to define the mass density.
   template <int dim>
   class Rho : public Function<dim>
@@ -174,7 +175,7 @@ namespace step62
 
 
 
-  // @sect4{`Parameters` class}
+  // @sect4{The `Parameters` class}
   // This class contains all the parameters that will be used in the simulation.
   template <int dim>
   class Parameters
@@ -215,9 +216,8 @@ namespace step62
   // The calculation of the mass and stiffness matrices is very expensive. These
   // matrices are the same for all the frequency steps. The right hand side
   // vector is also the same for all the frequency steps. We use this class to
-  // store these values and re-use them at each frequency step. The
+  // store these objects and re-use them at each frequency step. The
   // `PointHistory` class has already been used in step-18.
-
   template <int dim>
   class PointHistory
   {
@@ -240,7 +240,7 @@ namespace step62
 
 
 
-  // @sect4{`get_stiffness_tensor` function}
+  // @sect4{The `get_stiffness_tensor()` function}
 
   // This class returns the stiffness tensor of the material. For the sake of
   // simplicity we consider the stiffness to be isotropic and homogeneous; only
@@ -272,15 +272,15 @@ namespace step62
 
 
 
-  // @sect3{`ElasticWave` class}
+  // @sect3{The `ElasticWave` class}
 
   // Next let's declare the main class of this program. Its structure is very
   // similar to the step-40 tutorial program. The main differences are:
-  // - The sweep over the frequency vector.
+  // - The sweep over the frequency values.
   // - We save the stiffness and mass matrices in `quadrature_point_history` and
-  // use them for each frequency step.
+  //   use them for each frequency step.
   // - We store the measured energy by the probe for each frequency step in the
-  // HDF5 file.
+  //   HDF5 file.
   template <int dim>
   class ElasticWave
   {
@@ -1398,7 +1398,7 @@ namespace step62
   }
 } // namespace step62
 
-using namespace dealii;
+
 
 // @sect4{The main function}
 
@@ -1407,7 +1407,8 @@ int main(int argc, char *argv[])
 {
   try
     {
-      const int dim = 2;
+      using namespace dealii;
+      const unsigned int dim = 2;
 
       Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
 

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.