<html>

  <head>
    <title>
      PYRAMID_RULE - Generate a Quadrature Rule for a Pyramid
    </title>
  </head>

  <body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">

    <h1 align = "center">
      PYRAMID_RULE <br> Generate a Quadrature Rule for a Pyramid
    </h1>

    <hr>

    <p>
      <b>PYRAMID_RULE</b> 
      is a MATLAB program which
      generates a quadrature rule for a pyramid.
    </p>

    <p>
      The quadrature rules generated by <b>PYRAMID_RULE</b> are all
      examples of <i>conical product rules</i>, and involve a kind of
      direct product of the form:
      <blockquote>
        Legendre rule in X * Legendre rule in Y * Jacobi rule in Z
      </blockquote>
      where the Jacobi rule includes a factor of (1-Z)^2.
    </p>

    <p>
       The integration region is:
       <pre>
       - ( 1 - Z ) <= X <= 1 - Z
       - ( 1 - Z ) <= Y <= 1 - Z
                 0 <= Z <= 1.
       </pre>
       When Z is zero, the integration region is a square lying in the (X,Y) 
       plane, centered at (0,0,0) with "radius" 1.  As Z increases to 1, the 
       radius of the square diminishes, and when Z reaches 1, the square has 
       contracted to the single point (0,0,1).
    </p>

    <h3 align = "center">
      Usage:
    </h3>

    <p>
      <blockquote>
        <b>pyramid_rule</b> ( <i>legendre_order</i>, <i>jacobi_order</I>, <i>'filename'</i> )
      </blockquote>
      where
      <ul>
        <li>
          <i>legendre_order</i> is the order of the 1D Legendre quadrature rule to be used.  The X and Y dimensions
          will use a product of this rule.
        </li>
        <li>
          <i>jacobi_order</i> is the order of the 1D Jacobi quadrature rule to be used.  The Z dimension
          will use this rule which will include a factor of (1-X)^2 which accounts
          for the narrowing of the pyramid.
        </li>
        <li>
          <i>'filename'</i> is the common prefix for the files containing the region, weight
          and abscissa information of the quadrature rule;
        </li>
      </ul>
    </p>

    <h3 align = "center">
      Licensing:
    </h3>
 
    <p>
      The computer code and data files described and made available on this web page 
      are distributed under
      <a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
    </p>

    <h3 align = "center">
      Languages:
    </h3>

    <p>
      <b>PYRAMID_RULE</b> is available in
      <a href = "../../cpp_src/pyramid_rule/pyramid_rule.html">a C++ version</a> and
      <a href = "../../f90_src/pyramid_rule/pyramid_rule.html">a FORTRAN90 version</a> and
      <a href = "../../m_src/pyramid_rule/pyramid_rule.html">a MATLAB version.</a>
    </p>

    <h3 align = "center">
      Related Data and Programs:
    </h3>

    <p>
      <a href = "../../m_src/felippa/felippa.html">
      FELIPPA</a>,
      a MATLAB library which 
      defines quadrature rules for lines, triangles, quadrilaterals,
      pyramids, wedges, tetrahedrons and hexahedrons.
    </p>

    <p>
      <a href = "../../m_src/geometry/geometry.html">
      GEOMETRY</a>,
      a MATLAB library which
      performs geometric calculations in 2, 3 and N dimensional space.
    </p>

    <p>
      <a href = "../../m_src/jacobi_rule/jacobi_rule.html">
      JACOBI_RULE</a>,
      a MATLAB program which
      can compute and print a Gauss-Jacobi quadrature rule.
    </p>

    <p>
      <a href = "../../m_src/legendre_rule/legendre_rule.html">
      LEGENDRE_RULE</a>,
      a MATLAB program which
      can compute and print a Gauss-Legendre quadrature rule.
    </p>

    <p>
      <a href = "../../m_src/pyramid_exactness/pyramid_exactness.html">
      PYRAMID_EXACTNESS</a>,
      a MATLAB program which
      investigates the polynomial exactness of a quadrature rule for the pyramid.
    </p>

    <p>
      <a href = "../../datasets/quadrature_rules_pyramid/quadrature_rules_pyramid.html">
      QUADRATURE_RULES_PYRAMID</a>, 
      a dataset directory which 
      contains quadrature rules for a pyramid with a square base.
    </p>

    <p>
      <a href = "../../m_src/quadrule/quadrule.html">
      QUADRULE</a>,
      a MATLAB library which
      defines quadrature rules on a
      variety of intervals with different weight functions.
    </p>

    <p>
      <a href = "../../m_src/stroud/stroud.html">
      STROUD</a>,
      a MATLAB library which
      defines quadrature rules for a variety of unusual areas, surfaces and volumes in 2D,
      3D and N-dimensions.
    </p>

    <h3 align = "center">
      Reference:
    </h3>

    <p>
      <ol>
        <li>
          Carlos Felippa,<br>
          A compendium of FEM integration formulas for symbolic work,<br>
          Engineering Computation,<br>
          Volume 21, Number 8, 2004, pages 867-890.
        </li>
        <li>
          Arthur Stroud,<br>
          Approximate Calculation of Multiple Integrals,<br>
          Prentice Hall, 1971,<br>
          ISBN: 0130438936,<br>
          LC: QA311.S85.
        </li>
      </ol>
    </p>

    <h3 align = "center">
      Source Code:
    </h3>

    <p>
      <ul>
        <li>
          <a href = "pyramid_rule.m">pyramid_rule.m</a>, the source code.
        </li>
      </ul>
    </p>

    <p>
      You can go up one level to <a href = "../m_src.html">
      the MATLAB source codes</a>.
    </p>

    <hr>

    <i>
      Last revised on 23 July 2009.
    </i>

    <!-- John Burkardt -->

  </body>

  <!-- Initial HTML skeleton created by HTMLINDEX. -->

</html>