[cig-commits] r3871 - in short/3D/PyLith/branches/pylith-0.8/doc/userguide: . intro materials

cassie at geodynamics.org cassie at geodynamics.org
Fri Jun 23 14:58:33 PDT 2006


Author: cassie
Date: 2006-06-23 14:58:33 -0700 (Fri, 23 Jun 2006)
New Revision: 3871

Modified:
   short/3D/PyLith/branches/pylith-0.8/doc/userguide/intro/intro.xml
   short/3D/PyLith/branches/pylith-0.8/doc/userguide/materials/maxwell_linear.xml
   short/3D/PyLith/branches/pylith-0.8/doc/userguide/pylith_userguide.xml
Log:
updated manual with equations

Modified: short/3D/PyLith/branches/pylith-0.8/doc/userguide/intro/intro.xml
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/doc/userguide/intro/intro.xml	2006-06-23 17:10:55 UTC (rev 3870)
+++ short/3D/PyLith/branches/pylith-0.8/doc/userguide/intro/intro.xml	2006-06-23 21:58:33 UTC (rev 3871)
@@ -2,208 +2,303 @@
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
 <chapter id="chapter_introduction">
-  <title>Introduction</title>
-
-  <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <section>
-    <title>Overview</title>
-    <para>
-      PyLith is a multi-scale simulation software package for
-      earthquake physics. It is portable, scalable software for
-      simulation of crustal deformation across spatial scales ranging
-      from meters to hundreds of kilometers and temporal scales
-      ranging from milliseconds to thousands of years.
-    </para>
-  </section>
-
-  <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <section>
-    <title>History</title>
-    <para>
-      This first version of PyLith is a direct descendant of Lithomop
-      and marks the first version that runs in parallel. Lithomop was
-      the product of major reengineering of Tecton, a finite-element
-      code for simulating static and quasi-static crustal
-      deformation. The major new features present in Lithomop included
-      dynamic memory allocation and the use of the Pyre simulation
-      framework and PETSc solvers.
-    </para>
-    <para>
-      PyLith is currently being rewritten from scratch to create a
-      much more modular, powerful simulation package. This new code
-      will include earthquake dynamics (both rupture propagation and
-      seismic wave propagation). A beta release is expected in late
-      2006.
-    </para>
-  </section>
-
-  <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <section>
-    <title>Governing Equations</title>
-    <para>
-      ADD STUFF HERE
-    </para>
-  </section>
-
-  <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <section>
-    <title>Software Components</title>
-
-    <para>
-      PyLith is separated into modules to encapsulate behavior and
-      facilitate use across multiple applications. That way expert
-      users can replace functionality of a wide variety of components
-      without recompiling or polluting the main code. External
-      packages reduce development time and enhance computational
-      efficiency, for example, PyLith runs 2x faster by using the
-      PETSc linear solver.
-    </para>
-    <para>
-      PyLith is based on several programming languages. High-level
-      code is written in Python; this rich, expressive interpreted
-      language with dynamic typing reduces development
-      time. Low-level code is written in Fortran 77 for fast
-      execution. Bindings, written in C/C++, are used to allow the
-      low-level code (Fortran 77) to be called from high-level code
-      (Python).
-    </para>
-    <para>
-      PyLith makes extensive use of external software. Pyre is a
-      science neutral simulation framework being developed at
-      Caltech. PETSc is used to perform operations on matrices and
-      vectors in parallel.
-    </para>
-
-    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <title>Introduction</title>
+    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
     <section>
-      <title>PETSc</title>
-      <para>
-        <ulink
-        href="http://www-unix.mcs.anl.gov/petsc/petsc-as/">PETSc</ulink>,
-        the Portable, Extensible Toolkit for Scientific computation,
-        provides a suite of routines for parallel, numerical solution
-        of partial differential equations for linear and nonlinear
-        systems with large, sparse systems of equations. PETSc
-        includes solvers that implement a variety of Newton and Krylov
-        subspace methods. It can also interface with many external
-        packages, including BlockSolve95, ESSL, Matlab, ParMeTis,
-        PVODE, and SPAI, thereby providing additional solvers and
-        interaction with other software packages.
-      </para>
-
-      <para>
-        PETSc includes interfaces for Fortran, C, and C++ for nearly
-        all of the routines and PETSc can be installed on most Unix
-        systems. PETSc can be built with user supplied highly
-        optimized linear algebra routines (e.g., ATLAS and commercial
-        versions of BLAS/LAPACK), thereby improving application
-        performance. Users can use PETSc parallel matrices, vectors,
-        and other data structures for most parallel operations,
-        eliminating the need for explicit calls to Message Passing
-        Interface (MPI) routines. Many settings and options can be
-        controlled with PETSc specific command-line arguments,
-        including selection of preconditions, solvers, and generation
-        of performance logs.
-      </para>
+        <title>Overview</title>
+        <para> PyLith is a multi-scale simulation software package for earthquake physics. It is
+            portable, scalable software for simulation of crustal deformation across spatial scales
+            ranging from meters to hundreds of kilometers and temporal scales ranging from
+            milliseconds to thousands of years. </para>
     </section>
-
-    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
     <section>
-      <title>Pyre</title>
-
-      <para>
-        Pyre is an object-oriented environment capable of specifying
-        and launching numerical simulations on multiple platforms,
-        including Beowulf class parallel computers and grid computing
-        systems. Pyre allows the binding of multiple components such
-        as solid and fluid models used in Earth science simulations,
-        and different meshers. The Pyre framework enables the elegant
-        setup, modification and launching of massively parallel
-        three-dimensional solver applications.
-      </para>
-      <para>
-        Pyre is a framework, a combination of software and design
-        philosophy that promotes the reuse of code. In their canonical
-        software design book, <citetitle>Design Patterns</citetitle>,
-        Erich Gamma <emphasis>et al</emphasis>. condense the concept
-        of a framework concept down to, "When you use a framework, you
-        reuse the main body and write the code it calls."  In the
-        context of frameworks and object-oriented programming, Pyre
-        can be thought of as a collection of classes and the way their
-        instances interact.  Programming applications based on Pyre
-        will look similar to those written in any other
-        object-oriented language. The Pyre framework contains a subset
-        of parts that make up the overall framework. Each of those
-        parts is designed to solve a specific problem.
-      </para>
-      <para>
-        The framework approach to computation offers many
-        advantages. It permits the exchange of codes and promotes the
-        reuse of standardized software while preserving
-        efficiency. Frameworks are also an efficient way to handle
-        changes in computer architecture. They present programmers and
-        scientists with a unified and well-defined task and allow for
-        shared costs of the housekeeping aspects of software
-        development. They provide greater institutional continuity to
-        model development than piecemeal approaches.
-      </para>
-      <para>
-        The Pyre framework incorporates features aimed at enabling the
-        scientific non-expert to perform tasks easily without
-        hindering the expert. Target features for end users allow
-        complete and intuitive simulation specification, reasonable
-        defaults, consistency checks of input, good diagnostics, easy
-        access to remote facilities, and status monitoring. Target
-        features for developers include easy access to user input, a
-        shorter development cycle, and good debugging support.
-      </para>
-
-      <figure id="figure_pyre_overview">
-	<title>
-          Pyre Architecture. The integration framework is a set of
-          cooperating abstract services.
-        </title>
-	<mediaobject>
-	  <imageobject role="fo">
-	    <imagedata fileref="figs/pyre_overview.eps" format="EPS"/>
-	  </imageobject>
-	  <imageobject role="xhtml,html">
-	    <imagedata fileref="figs/pyre_overview.png" format="PNG"/>
-	  </imageobject>
-	</mediaobject>
-      </figure>
-
+        <title>History</title>
+        <para> This first version of PyLith is a direct descendant of Lithomop and marks the first
+            version that runs in parallel. Lithomop was the product of major reengineering of
+            Tecton, a finite-element code for simulating static and quasi-static crustal
+            deformation. The major new features present in Lithomop included dynamic memory
+            allocation and the use of the Pyre simulation framework and PETSc solvers. </para>
+        <para> PyLith is currently being rewritten from scratch to create a much more modular,
+            powerful simulation package. This new code will include earthquake dynamics (both
+            rupture propagation and seismic wave propagation). A beta release is expected in late
+            2006. </para>
     </section>
-  </section>
-
-  <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <section>
-    <title>PyLith Design</title>
-
-    <para>
-      In transforming Lithomop, a serial code, into PyLith, a parallel
-      code, a principal concern was to preserve the existing structure
-      of the serial Fortran code. Active development of purely
-      analytic features in PyLith, such as new material models or
-      discretization schemes, depends on the familiarity of
-      application scientists with the traditional Fortran programming
-      paradigm. Global, topological operation should be strictly
-      segregated from the existing code. In fact, with the exception
-      of integrating PETSc for serial linear algebra and solver
-      operations, PyLith can be run purely in serial without
-      activating any of the parallel capabilities.
-    </para>
-    <para>
-      In order to accomplish this separation, we use the PETSc
-      <classname>Sieve</classname> structure to create a model of the
-      serial PyLith mesh. This model is then partitioned and
-      distributed to a set of processes. Each process receives a
-      self-consistent mesh, meaning the pieces are overlapping.  Each
-      process then executes a serial PyLith step on that particular
-      mesh piece.  The PETSc linear algebra operations are overloaded,
-      using the <classname>Sieve</classname> information, to produce a
-      globally consistent field.
-    </para>
-  </section>
-
+    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <section>
+        <title>Governing Equations</title>
+        <para> Both LithoMop3d and PyLith-0.8 are quasi-static codes, meaning that time-dependence
+            only enters through the constitutive relationships and the loading conditions. The
+            description here is for the small-strain formulation, which is the only formulation
+            available at present. If a large deformation solution is desired, interested users may
+            contact Charles Williams (willic3 at rpi.edu) about a version of the finite element code
+            TECTON. </para>
+        <para>The problem is formulated in terms of the stresses (<phrase role="symbol">&sigma;</phrase><emphasis><superscript>ij</superscript></emphasis>), displacements (<emphasis>u<superscript>i</superscript></emphasis>), and body forces per unit volume  (<inlinemediaobject id="g-inlineeq1"> <imageobject role="fo"> <imagedata fileref="figs/g-inlineeq1.eps" format="EPS"/> </imageobject> </inlinemediaobject>). We use standard index notation for all equations here, such that repeated indices imply summation and a comma denotes differentiation. For a general three-dimensional body, the problem must satisfy the equilibrium conditions</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq1">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq1.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(1)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>subject to the natural boundary conditions</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq2">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq2.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(2)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>and the essential boundary conditions</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq3">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq3.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(3)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>The surface of the body is <emphasis>S</emphasis>, given by</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq4">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq4.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(4)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>The <emphasis>n<subscript>j</subscript>
+            </emphasis> are the components of the unit normal vector to <emphasis>S</emphasis>, the
+            <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq2.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> are the components of the surface tractions, and the 
+            <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq3.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> are the components of the applied displacements. The stresses are
+            computed from the strains and any existing initial stresses using a given constitutive
+            relationship. The strains are given by</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq5">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq5.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(5)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>For a linear elastic material, the constitutive relationship between stress and strain
+            is</para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq6">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq6.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(6)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>where <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq4.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> are the initial stresses, and <emphasis>C</emphasis>
+            <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq5.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> is the elastic constitutive relation.</para>
+        <para> For inelastic behavior (viscous, plastic, etc.), we assume an additive decomposition
+            of the strain tensor into elastic and inelastic parts, and use an integrated form of the
+            classical incremental theory of plasticity. At time <emphasis>t</emphasis>+<phrase
+                role="symbol">&Delta;</phrase><emphasis>t</emphasis>, he stresses are therefore computed from the total elastic
+            strain: </para>
+        <informaltable frame="none">
+            <tgroup cols="2" colsep="0" align="center" rowsep="0">
+                <tbody>
+                    <row>
+                        <entry align="left">
+                            <mediaobject id="eq7">
+                                <imageobject role="fo">
+                                    <imagedata fileref="figs/g-eq7.eps" format="EPS"/>
+                                </imageobject>
+                            </mediaobject>
+                        </entry>
+                        <entry valign="middle" align="right">(7)</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+        <para>where <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq6.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> are the total strains and <inlinemediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="figs/g-inlineeq7.eps" format="EPS"/>
+                </imageobject>
+            </inlinemediaobject> are the inelastic strains, with the difference being the elastic
+            strains. In our actual computations, we use a formulation that decomposes the stresses
+            into the deviatoric and volumetric parts, using ideas based on the "effective stress
+            function" [<emphasis>Kojic and Bathe</emphasis>, 1987]. This allows the time integration
+            of stresses to be performed in terms of a single parameter related to the second
+            deviatoric stress invariant.</para>
+        <para>References: Kojic, M. and K.-J. Bathe, The 'Effective Stress-Function' Algorithm for
+            Thermo-Elasto-Plasticity and Creep, <emphasis>Int. J. Num. Meth. Eng.</emphasis>, 24,
+            1509-1532, 1987.</para>
+    </section>
+    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <section>
+        <title>Software Components</title>
+        <para> PyLith is separated into modules to encapsulate behavior and facilitate use across
+            multiple applications. That way expert users can replace functionality of a wide variety
+            of components without recompiling or polluting the main code. External packages reduce
+            development time and enhance computational efficiency, for example, PyLith runs 2x
+            faster by using the PETSc linear solver. </para>
+        <para> PyLith is based on several programming languages. High-level code is written in
+            Python; this rich, expressive interpreted language with dynamic typing reduces
+            development time. Low-level code is written in Fortran 77 for fast execution. Bindings,
+            written in C/C++, are used to allow the low-level code (Fortran 77) to be called from
+            high-level code (Python). </para>
+        <para> PyLith makes extensive use of external software. Pyre is a science neutral simulation
+            framework being developed at Caltech. PETSc is used to perform operations on matrices
+            and vectors in parallel. </para>
+        <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++ -->
+        <section>
+            <title>PETSc</title>
+            <para>
+                <ulink url="http://www-unix.mcs.anl.gov/petsc/petsc-as/">PETSc</ulink>, the
+                Portable, Extensible Toolkit for Scientific computation, provides a suite of
+                routines for parallel, numerical solution of partial differential equations for
+                linear and nonlinear systems with large, sparse systems of equations. PETSc includes
+                solvers that implement a variety of Newton and Krylov subspace methods. It can also
+                interface with many external packages, including BlockSolve95, ESSL, Matlab,
+                ParMeTis, PVODE, and SPAI, thereby providing additional solvers and interaction with
+                other software packages. </para>
+            <para> PETSc includes interfaces for Fortran, C, and C++ for nearly all of the routines
+                and PETSc can be installed on most Unix systems. PETSc can be built with user
+                supplied highly optimized linear algebra routines (e.g., ATLAS and commercial
+                versions of BLAS/LAPACK), thereby improving application performance. Users can use
+                PETSc parallel matrices, vectors, and other data structures for most parallel
+                operations, eliminating the need for explicit calls to Message Passing Interface
+                (MPI) routines. Many settings and options can be controlled with PETSc specific
+                command-line arguments, including selection of preconditions, solvers, and
+                generation of performance logs. </para>
+        </section>
+        <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++ -->
+        <section>
+            <title>Pyre</title>
+            <para> Pyre is an object-oriented environment capable of specifying and launching
+                numerical simulations on multiple platforms, including Beowulf class parallel
+                computers and grid computing systems. Pyre allows the binding of multiple components
+                such as solid and fluid models used in Earth science simulations, and different
+                meshers. The Pyre framework enables the elegant setup, modification and launching of
+                massively parallel three-dimensional solver applications. </para>
+            <para> Pyre is a framework, a combination of software and design philosophy that
+                promotes the reuse of code. In their canonical software design book,
+                    <citetitle>Design Patterns</citetitle>, Erich Gamma <emphasis>et al</emphasis>.
+                condense the concept of a framework concept down to, "When you use a framework, you
+                reuse the main body and write the code it calls." In the context of frameworks and
+                object-oriented programming, Pyre can be thought of as a collection of classes and
+                the way their instances interact. Programming applications based on Pyre will look
+                similar to those written in any other object-oriented language. The Pyre framework
+                contains a subset of parts that make up the overall framework. Each of those parts
+                is designed to solve a specific problem. </para>
+            <para> The framework approach to computation offers many advantages. It permits the
+                exchange of codes and promotes the reuse of standardized software while preserving
+                efficiency. Frameworks are also an efficient way to handle changes in computer
+                architecture. They present programmers and scientists with a unified and
+                well-defined task and allow for shared costs of the housekeeping aspects of software
+                development. They provide greater institutional continuity to model development than
+                piecemeal approaches. </para>
+            <para> The Pyre framework incorporates features aimed at enabling the scientific
+                non-expert to perform tasks easily without hindering the expert. Target features for
+                end users allow complete and intuitive simulation specification, reasonable
+                defaults, consistency checks of input, good diagnostics, easy access to remote
+                facilities, and status monitoring. Target features for developers include easy
+                access to user input, a shorter development cycle, and good debugging support. </para>
+            <figure id="figure_pyre_overview">
+                <title> Pyre Architecture. The integration framework is a set of cooperating
+                    abstract services. </title>
+                <mediaobject>
+                    <imageobject role="fo">
+                        <imagedata fileref="figs/pyre_overview.eps" format="EPS"/>
+                    </imageobject>
+                    <imageobject role="xhtml,html">
+                        <imagedata fileref="figs/pyre_overview.png" format="PNG"/>
+                    </imageobject>
+                </mediaobject>
+            </figure>
+        </section>
+    </section>
+    <!-- SECTION +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <section>
+        <title>PyLith Design</title>
+        <para> In transforming Lithomop, a serial code, into PyLith, a parallel code, a principal
+            concern was to preserve the existing structure of the serial Fortran code. Active
+            development of purely analytic features in PyLith, such as new material models or
+            discretization schemes, depends on the familiarity of application scientists with the
+            traditional Fortran programming paradigm. Global, topological operation should be
+            strictly segregated from the existing code. In fact, with the exception of integrating
+            PETSc for serial linear algebra and solver operations, PyLith can be run purely in
+            serial without activating any of the parallel capabilities. </para>
+        <para> In order to accomplish this separation, we use the PETSc <classname>Sieve</classname>
+            structure to create a model of the serial PyLith mesh. This model is then partitioned
+            and distributed to a set of processes. Each process receives a self-consistent mesh,
+            meaning the pieces are overlapping. Each process then executes a serial PyLith step on
+            that particular mesh piece. The PETSc linear algebra operations are overloaded, using
+            the <classname>Sieve</classname> information, to produce a globally consistent field.
+        </para>
+    </section>
 </chapter>

Modified: short/3D/PyLith/branches/pylith-0.8/doc/userguide/materials/maxwell_linear.xml
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/doc/userguide/materials/maxwell_linear.xml	2006-06-23 17:10:55 UTC (rev 3870)
+++ short/3D/PyLith/branches/pylith-0.8/doc/userguide/materials/maxwell_linear.xml	2006-06-23 21:58:33 UTC (rev 3871)
@@ -1,7 +1,465 @@
 <?xml version="1.0"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
 <section id="section_maxwell_linear">
-  <title>Maxwell Linear Viscoelastic Material</title>
-
+    <title>Effective Stress Function Formulation for a Maxwell Linear Viscoelastic Material</title>
+    <para>
+        <emphasis>Determination of stresses:</emphasis>
+    </para>
+    <para>The element stresses are:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq1">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq1.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(1)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>where <phrase role="symbol">&#949;</phrase> is the total strain and 
+        <inlinemediaobject id="ml-inlineeq1"> <imageobject role="fo"> <imagedata fileref="figs/ml-inlineeq1.eps" format="EPS"/> </imageobject> </inlinemediaobject> is the initial stress. In terms of the deviatoric
+        stress,</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq2">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq2.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(2)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>where</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq3">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq3.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(3)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>and the mean stress and strain are given by:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq4">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq4.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(4)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Equation (2) may also be written:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq5">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq4.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(5)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>where</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq6">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq6.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(6)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>The creep strain increment is approximated as:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq7">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq7.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(7)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>where, using the <phrase role="symbol">&alpha;</phrase>-method of time integration:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq8">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq8.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(8)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>and</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq9">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq9.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(9)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>where</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq10">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq10.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(10)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>and</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq11">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq11.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(11)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>For a linear Maxwell viscoelastic material:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq12">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq12.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(12)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Therefore,</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq13">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq13.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(13)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Subsituting (8), (12), and (13) into (5), we obtain:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq14">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq14.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(14)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Solving for  <inlinemediaobject id="ml-inlineeq2"> <imageobject role="fo"> <imagedata fileref="figs/ml-inlineeq2.eps" format="EPS"/> </imageobject> </inlinemediaobject>,</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq15">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq15.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(15)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>In this case, it is possible to solve directly for the deviatoric stresses, and the
+        effective stress function approach is not needed. To obtain the total stress, we simply use:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq16">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq16.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(16)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>
+        <emphasis>Tangent stress-strain relation:</emphasis>
+    </para>
+    <para>It is now necessary to provide a relationship for the viscoelastic tangent material
+        matrix. If we use vectors composed of the stresses and tensor strains, this relationship is: </para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq17">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq17.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(17)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>In terms of the vectors, we have:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq18">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq18.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(18)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Therefore,</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq19">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq19.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(19)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Using the chain rule,</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq20">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq20.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(20)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>From (6), we obtain</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq21">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq21.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(21)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>and from (3):</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq22">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq22.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(22)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Finally, from (15), we have:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq23">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq23.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(23)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>From (19), the final material matrix relating stress and tensor strain is:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq24">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq24.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(24)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>Note that the coefficient of the second matrix approaches
+            <emphasis>E</emphasis>/3(1+<phrase role="symbol">&nu;</phrase>) as <phrase
+            role="symbol">&eta;</phrase> goes to infinity. Since finite element computations
+        typically use engineering strain measures, the matrix that is actually used is:</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq25">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq25.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(25)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>To check the results, we make sure that the regular elastic constitutive matrix is
+        obtained for selected terms in the case where <phrase role="symbol">&eta;</phrase> goes
+        to infinity.</para>
+    <informaltable frame="none">
+        <tgroup cols="2" colsep="0" align="center" rowsep="0">
+            <tbody>
+                <row>
+                    <entry align="left">
+                        <mediaobject id="eq26">
+                            <imageobject role="fo">
+                                <imagedata fileref="figs/ml-eq26.eps" format="EPS"/>
+                            </imageobject>
+                        </mediaobject>
+                    </entry>
+                    <entry valign="middle" align="right">(26)</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </informaltable>
+    <para>This is consistent with the regular elasticity matrix, and equation (25) should thus be
+        used when forming the stiffness matrix.</para>
 </section>

Modified: short/3D/PyLith/branches/pylith-0.8/doc/userguide/pylith_userguide.xml
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/doc/userguide/pylith_userguide.xml	2006-06-23 17:10:55 UTC (rev 3870)
+++ short/3D/PyLith/branches/pylith-0.8/doc/userguide/pylith_userguide.xml	2006-06-23 21:58:33 UTC (rev 3871)
@@ -25,7 +25,7 @@
     <date>2006.06.12</date>
     <copyright>
       <year>2006</year>
-      <holder>Copyright holder ??</holder>
+      <holder>CIG</holder>
     </copyright>
   </bookinfo>
   



More information about the Cig-commits mailing list