diff --git a/doc/dev-doc/conf.py.in b/doc/dev-doc/conf.py.in index 4cc768f29..194a88f4e 100644 --- a/doc/dev-doc/conf.py.in +++ b/doc/dev-doc/conf.py.in @@ -1,236 +1,237 @@ # -*- coding: utf-8 -*- # # Configuration file for the Sphinx documentation builder. # # This file does only contain a selection of the most common options. For a # full list see the documentation: # http://www.sphinx-doc.org/en/master/config # -- Path setup -------------------------------------------------------------- # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os # import subprocess # import sys # sys.path.insert(0, os.path.abspath('.')) # -- Project information ----------------------------------------------------- project = '@PROJECT_NAME@' copyright = '@AKANTU_COPYRING@' author = '@AKANTU_MAINTAINER@' version = '@AKANTU_VERSION_MAJOR@.@AKANTU_VERSION_MINOR@' # The full version, including alpha/beta/rc tags release = '@AKANTU_VERSION@' # -- General configuration --------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Number figures numfig = True # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinxcontrib.bibtex', 'breathe', ] read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = '.rst' # The master toctree document. master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = None # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["CMakeLists.txt"] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' primary_domain = 'cpp' highlight_language = 'cpp' # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # if read_the_docs_build: html_theme = 'default' else: html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # # html_theme_options = {} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Custom sidebar templates, must be a dictionary that maps document names # to template names. # # The default sidebars (for documents that don't match any pattern) are # defined by theme itself. Builtin themes are using these templates by # default: ``['localtoc.html', 'relations.html', 'sourcelink.html', # 'searchbox.html']``. # # html_sidebars = {} html_sidebars = { '**': [ 'relations.html', # needs 'show_related': True theme option to display 'searchbox.html', ]} math_eqref_format = "Eq. {number}" # MathJax configuration mathjax_config = { 'extensions': [ "tex2jax.js", "siunitx.js" ], 'TeX': { 'Macros': { 'st': [r'\mathrm{#1}', 1], 'mat': [r'\mathbf{#1}', 1], + 'half': [r'\frac{1}{2}', 0], }, 'extensions': ["AMSmath.js", "AMSsymbols.js", "sinuitx.js"], }, } # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. htmlhelp_basename = 'Akantudoc' # -- Options for LaTeX output ------------------------------------------------ latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': r'''\usepackage{amsmath}''', # Latex figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'Akantu.tex', 'Akantu Documentation', 'Nicolas Richart', 'manual'), ] # -- Options for manual page output ------------------------------------------ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'akantu', 'Akantu Documentation', [author], 1) ] # -- Options for Texinfo output ---------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'Akantu', 'Akantu Documentation', author, 'Akantu', 'One line description of project.', 'Miscellaneous'), ] # -- Options for Epub output ------------------------------------------------- # Bibliographic Dublin Core info. epub_title = project epub_author = author epub_publisher = author epub_copyright = copyright # The unique identifier of the text. This can be a ISBN number # or the project homepage. # epub_identifier = '' # A unique identification for the text. # # epub_uid = '' # A list of files that should not be packed into the epub file. epub_exclude_files = ['search.html'] # -- Extension configuration ------------------------------------------------- if read_the_docs_build: akantu_path = "." else: akantu_path = "@CMAKE_CURRENT_BINARY_DIR@" os.makedirs("@CMAKE_CURRENT_BINARY_DIR@/_static", exist_ok=True) # print("akantu_path = '{}'".format(akantu_path)) breathe_projects = {"Akantu": os.path.join(akantu_path, "xml")} breathe_default_project = "Akantu" breathe_default_members = ('members', 'undoc-members') breathe_implementation_filename_extensions = ['.c', '.cc', '.cpp'] breathe_show_enumvalue_initializer = True # -- Options for intersphinx extension --------------------------------------- intersphinx_mapping = { 'numpy': ('https://docs.scipy.org/doc/numpy/', None), 'scipy': ('https://docs.scipy.org/doc/scipy/reference', None), } diff --git a/doc/dev-doc/index.rst b/doc/dev-doc/index.rst index 8affc93b7..1c6013c66 100644 --- a/doc/dev-doc/index.rst +++ b/doc/dev-doc/index.rst @@ -1,34 +1,40 @@ .. Akantu documentation master file, created by sphinx-quickstart on Fri Apr 17 16:35:46 2020. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Akantu: a FEM library ===================== .. toctree:: :maxdepth: 2 :caption: User Manual ./manual/getting_started.rst ./manual/fe_engine.rst ./manual/solidmechanicsmodel.rst .. toctree:: :maxdepth: 2 :caption: API Reference ./reference.rst +.. toctree:: + :maxdepth: 2 + :caption: Appendix + + ./manual/appendix.rst + .. toctree:: :maxdepth: 2 :caption: Bibliography ./manual/bibliography.rst Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` diff --git a/doc/dev-doc/manual/fe_engine.rst b/doc/dev-doc/manual/fe_engine.rst index b0a87ee43..12efe833b 100644 --- a/doc/dev-doc/manual/fe_engine.rst +++ b/doc/dev-doc/manual/fe_engine.rst @@ -1,308 +1,310 @@ -``FEEngine`` -============ +FEEngine +======== The :cpp:class:`FEEngine` interface is dedicated to handle the finite-element approximations and the numerical integration of the weak form. As we will see in Chapter :doc:`./solidmechanicsmodel`, :cpp:class:`Model` creates its own :cpp:class:`FEEngine` object so the explicit creation of the object is not required. Mathematical Operations ----------------------- Using the :cpp:class:`FEEngine` object, one can compute a interpolation, an integration or a gradient.A simple example is given below: .. code-block:: c++ // having a FEEngine object auto fem = std::make_unique>(my_mesh, dim, "my_fem"); // instead of this, a FEEngine object can be get using the model: // model.getFEEngine() // compute the gradient Array u; // append the values you want Array nablauq; // gradient array to be computed // compute the gradient fem->gradientOnIntegrationPoints(const Array & u, Array & nablauq, const UInt nb_degree_of_freedom, ElementType type); // interpolate Array uq; // interpolated array to be computed // compute the interpolation fem->interpolateOnIntegrationPoints(const Array & u, Array & uq, UInt nb_degree_of_freedom, ElementType type); // interpolated function can be integrated over the elements Array int_val_on_elem; // integrate fem->integrate(const Array & uq, Array & int_uq, UInt nb_degree_of_freedom, ElementType type); Another example below shows how to integrate stress and strain fields over elements assigned to a particular material: .. code-block:: c++ UInt sp_dim{3}; // spatial dimension UInt m{1}; // material index of interest const auto type{_tetrahedron_4}; // element type // get the stress and strain arrays associated to the material index m const auto & strain_vec = model.getMaterial(m).getGradU(type); const auto & stress_vec = model.getMaterial(m).getStress(type); // get the element filter for the material index const auto & elem_filter = model.getMaterial(m).getElementFilter(type); // initialize the integrated stress and strain arrays Array int_strain_vec(elem_filter.getSize(), sp_dim * sp_dim, "int_of_strain"); Array int_stress_vec(elem_filter.getSize(), sp_dim * sp_dim, "int_of_stress"); // integrate the fields model.getFEEngine().integrate(strain_vec, int_strain_vec, sp_dim * sp_dim, type, _not_ghost, elem_filter); model.getFEEngine().integrate(stress_vec, int_stress_vec, sp_dim * sp_dim, type, _not_ghost, elem_filter); +.. _sec-elements: + Elements -------- The base for every Finite-Elements computation is its mesh and the elements that are used within that mesh. The element types that can be used depend on the mesh, but also on the dimensionality of the problem (1D, 2D or 3D). In ``Akantu``, several iso-parametric Lagrangian element types are supported (and one serendipity element). Each of these types is discussed in some detail below, starting with the 1D-elements all the way to the 3D-elements. More detailed information (shape function, location of Gaussian quadrature points, and so on) can be found in Appendix app:elements. Iso-parametric Elements ....................... 1D ```` There are two types of iso-parametric elements defined in 1D. These element types are called :cpp:enumerator:`_segment_2 ` and :cpp:enumerator:`_segment_3 `, and are depicted schematically in :numref:`fig-elements-1D`. Some of the basic properties of these elements are listed in :numref:`tab-elements-1D`. .. _fig-elements-1D: .. figure:: figures/elements/segments.svg :align: center Schematic overview of the two 1D element types in ``Akantu``. In each element, the node numbering as used in ``Akantu`` is indicated and also the quadrature points are highlighted (gray circles). .. _tab-elements-1D: .. csv-table:: Some basic properties of the two 1D iso-parametric elements in ``Akantu`` :header: "Element type", "Order", "#nodes", "#quad points" ":cpp:enumerator:`_segment_2 `", "linear", 2, 1 ":cpp:enumerator:`_segment_3 `", "quadratic", 3, 2 2D ```` There are four types of iso-parametric elements defined in 2D. These element types are called :cpp:enumerator:`_triangle_3 `, :cpp:enumerator:`_triangle_6 `, :cpp:enumerator:`_quadrangle_4 ` and :cpp:enumerator:`_quadrangle_8 `, and all of them are depicted in :numref:`fig-elements-2D`. As with the 1D elements, some of the most basic properties of these elements are listed in :numref:`tab-elements-2D`. It is important to note that the first element is linear, the next two quadratic and the last one cubic. Furthermore, the last element type (``_quadrangle_8``) is not a Lagrangian but a serendipity element. .. _fig-elements-2D: .. figure:: figures/elements/elements_2d.svg :align: center Schematic overview of the four 2D element types in ``Akantu``. In each element, the node numbering as used in ``Akantu`` is indicated and also the quadrature points are highlighted (gray circles). .. _tab-elements-2D: .. csv-table:: Some basic properties of the 2D iso-parametric elements in ``Akantu`` :header: "Element type", "Order", "#nodes", "#quad points" ":cpp:enumerator:`_triangle_3 `", "linear", 3, 1 ":cpp:enumerator:`_triangle_6 `", "quadratic", 6, 3 ":cpp:enumerator:`_quadrangle_4 `", "linear", 4, 4 ":cpp:enumerator:`_quadrangle_8 `", "quadratic", 8, 9 3D ```` In ``Akantu``, there are three types of iso-parametric elements defined in 3D. These element types are called :cpp:enumerator:`_tetrahedron_4 `, :cpp:enumerator:`_tetrahedron_10 ` and :cpp:enumerator:`_hexadedron_8 `, and all of them are depicted schematically in :numref:`fig-elements-3D`. As with the 1D and 2D elements some of the most basic properties of these elements are listed in :numref:`tab-elements-3D`. .. _fig-elements-3D: .. figure:: figures/elements/elements_3d.svg :align: center Schematic overview of the three 3D element types in ``Akantu``. In each element, the node numbering as used in ``Akantu`` is indicated and also the quadrature points are highlighted (gray circles). .. _tab-elements-3D: .. csv-table:: Some basic properties of the 3D iso-parametric elements in ``Akantu`` :header: "Element type", "Order", "#nodes", "#quad points" ":cpp:enumerator:`_tetrahedron_4 `", "linear", 4, 1 ":cpp:enumerator:`_tetrahedron_10 `", "quadratic", 10, 4 ":cpp:enumerator:`_hexadedron_8 `", "cubic", 8, 8 Cohesive Elements ................. The cohesive elements that have been implemented in ``Akantu`` are based on the work of Ortiz and Pandolfi :cite:`ortiz1999`. Their main properties are reported in :numref:`tab-coh-cohesive_elements`. .. _fig-smm-coh-cohesive2d: .. figure:: figures/elements/cohesive_2d_6.svg :align: center Cohesive element in 2D for quadratic triangular elements T6. .. _tab-coh-cohesive_elements: .. csv-table:: Some basic properties of the cohesive elements in ``Akantu``. :header: "Element type", "Facet type", "Order", "#nodes", "#quad points" ":cpp:enumerator:`_cohesive_1d_2 <_cohesive_1d_2>`", ":cpp:enumerator:`_point_1 `", "linear", 2, 1 ":cpp:enumerator:`_cohesive_2d_4 `", ":cpp:enumerator:`_segment_2 `", "linear", 4, 1 ":cpp:enumerator:`_cohesive_2d_6 `", ":cpp:enumerator:`_segment_3 `", "quadratic", 6, 2 ":cpp:enumerator:`_cohesive_3d_6 `", ":cpp:enumerator:`_triangle_3 `","linear", 6, 1 ":cpp:enumerator:`_cohesive_3d_12 `", ":cpp:enumerator:`_triangle_6 `", "quadratic", 12, 3 Cohesive element insertion can be either realized at the beginning of the simulation or it can be carried out dynamically during the simulation. The first approach is called ``intrinsic``, the second one ``extrinsic``. When an element is present from the beginning, a bi-linear or exponential cohesive law should be used instead of a linear one. A bi-linear law works exactly like a linear one except for an additional parameter :math:`\delta_0` separating an initial linear elastic part from the linear irreversible one. For additional details concerning cohesive laws see Section~\ref{sec:cohesive-laws}. .. _fig-smm-coh-insertion: .. figure:: figures/insertion.svg :align: center Insertion of a cohesive element. Extrinsic cohesive elements are dynamically inserted between two standard elements when .. math:: \sigma_\mathrm{eff} > \sigma_\mathrm{c} \quad\text {with} \quad \sigma_\mathrm{eff} = \sqrt{\sigma_\mathrm{n} ^ 2 + \frac{\tau ^ 2} {\beta ^ 2 }} in which :math:`\sigma_\mathrm { n } ` is the tensile normal traction and $\tau$ the resulting tangential one( :numref:`fig-smm-coh-insertion`). For the static analysis of the structures containing cohesive elements, the stiffness of the cohesive elements should also be added to the total stiffness of the structure.Considering a 2D quadratic cohesive element as that in :numref:`fig-smm-coh-cohesive2d`, the opening displacement along the mid-surface can be written as: .. _eq-coh-opening: .. math:: \begin{align} \vec{\Delta}(s) &= \left[\!\!\left[ \mat{u}\right]\!\!\right] \,\mat{N}(s)\\ &= \begin{bmatrix} u_3 - u_0 & u_4 - u_1 & u_5 - u_2\\ v_3 - v_0 & v_4 - v_1 & v_5 - v_2 \end{bmatrix} \begin{bmatrix} N_0(s)\\ N_1(s)\\ N_2(s) \end{bmatrix}\\ &= \mat{N}^\mathrm{k} \mat{A U} = \mat{PU} \end{align} The :math:`\mat{U}`, :math:`\mat{A}` and :math:`\mat{N}^\mathrm{k}` are as following : .. math:: \begin{align} \mat{U} &= \left[\begin{array}{c c c c c c c c c c c c} u_0 & v_0 & u_1 & v_1 & u_2 & v_2 & u_3 & v_3 & u_4 & v_4 & u_5 & v_5 \end{array}\right]\\ \mat{A} &= \left[\begin{array}{c c c c c c c c c c c c} 1 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & -1 \end{array}\right]\\ \mat{N}^\mathrm{k} &= \begin{bmatrix} N_0(s) & 0 & N_1(s) & 0 & N_2(s) & 0\ 0 & N_0(s) & 0 & N_1(s) & 0 & N_2(s) \end{bmatrix} \end{align} The consistent stiffness matrix for the element is obtained as .. _eq-cohesive_stiffness: .. math:: \mat{K}=\int_{S_0}\mat{P}^\mathrm{T} \, \frac{\partial{\vec{T}}}{\partial{\delta}}\mat{P}\,\mathrm{d} S_0 where :math:`\vec{T}` is the cohesive traction and :math:`\delta` the opening displacement (for more details check :numref:`tab-coh-cohesive_elements`). Structural Elements ................... Bernoulli Beam Elements ``````````````````````` These elements allow to compute the displacements and rotations of structures constituted by Bernoulli beams. ``Akantu`` defines them for both 2D and 3D problems respectively in the element types :cpp:enumerator:`_bernoulli_beam_2 ` and :cpp:enumerator:`_bernoulli_beam_3 `. A schematic depiction of a beam element is shown in :numref:`fig-elements-bernoulli` and some of its properties are listed in :numref:`tab-elements-bernoulli`. .. note:: Beam elements are of mixed order: the axial displacement is linearly interpolated while transverse displacements and rotations use cubic shape functions. .. _fig-elements-bernoulli: .. figure:: figures/elements/bernoulli_2.svg :align: center Schematic depiction of a Bernoulli beam element (applied to 2D and 3D) in ``Akantu``. The node numbering as used in ``Akantu`` is indicated, and also the quadrature points are highlighted (gray circles). .. _tab-elements-bernoulli: .. csv-table:: Some basic properties of the beam elements in ``Akantu`` :header: "Element type", "Dimension", "# nodes", "# quad. points", "# d.o.f." ":cpp:enumerator:`_bernoulli_beam_2 `", "2D", 2, 3, 6 ":cpp:enumerator:`_bernoulli_beam_3 `", "3D", 2, 3, 12 diff --git a/doc/manual/manual-appendix-elements.tex b/doc/manual/manual-appendix-elements.tex index fb776a13d..c91c05f22 100644 --- a/doc/manual/manual-appendix-elements.tex +++ b/doc/manual/manual-appendix-elements.tex @@ -1,608 +1,616 @@ \chapter{Shape Functions\index{Elements}} \label{app:elements} -Schmatic overview of all the element types defined in \akantu is described in Section~\ref{sec:elements}. In this appendix, more detailed information (shape function, location of Gaussian quadrature points, and so on) of each of these types is listed. For each element type, the coordinates of the nodes are given in the isoparametric frame of reference, together with the shape functions (and their derivatives) on these respective nodes. Also all the Gaussian quadrature points within each element are assigned (together with the weight that is applied on these points). The graphical representations of all the element types can be found in Section~\ref{sec:elements}. +Schmatic overview of all the element types defined in \akantu is described in +Section~\ref{sec:elements}. In this appendix, more detailed information (shape +function, location of Gaussian quadrature points, and so on) of each of these +types is listed. For each element type, the coordinates of the nodes are given +in the isoparametric frame of reference, together with the shape functions (and +their derivatives) on these respective nodes. Also all the Gaussian quadrature +points within each element are assigned (together with the weight that is +applied on these points). The graphical representations of all the element types +can be found in Section~\ref{sec:elements}. %%%%%%%%%% 1D %%%%%%%%% %\section{Isoparametric Elements in 1D\index{Elements!1D}} \section{1D-Shape Functions\index{Elements!1D}} \subsection{Segment 2\index{Elements!1D!Segment 2}} \begin{Element}{1D} 1 & \inelemone{-1} & $\half\left(1-\xi\right)$ & \inelemone{-\half} \\ \elemline 2 & \inelemone{1} & $\half\left(1+\xi\right)$ & \inelemone{\half} \\ \end{Element} \begin{QuadPoints}{lc} Coord. \elemcooroned & 0 \\ \elemline Weight & 2 \\ \end{QuadPoints} \subsection{Segment 3\index{Elements!1D!Segment 3}} \begin{Element}{1D} 1 & \inelemone{-1} & $\half\xi\left(\xi-1\right)$ & \inelemone{\xi-\half} \\ \elemline 2 & \inelemone{1} & $\half\xi\left(\xi+1\right)$ & \inelemone{\xi+\half} \\ \elemline 3 & \inelemone{0} & $1-\xi^{2}$ & \inelemone{-2\xi} \\ \end{Element} \begin{QuadPoints}{lcc} Coord. \elemcooroned & $-1/\sqrt{3}$ & $1/\sqrt{3}$ \\ \elemline Weight & 1 & 1 \\ \end{QuadPoints} %%%%%%%%%% 2D %%%%%%%%% %\section{Isoparametric Elements in 2D\index{Elements!2D}} \section{2D-Shape Functions\index{Elements!2D}} \subsection{Triangle 3\index{Elements!2D!Triangle 3}} \begin{Element}{2D} 1 & \inelemtwo{0}{0} & $1-\xi-\eta$ & \inelemtwo{-1}{-1} \\ \elemline 2 & \inelemtwo{1}{0} & $\xi$ & \inelemtwo{1}{0} \\ \elemline 3 & \inelemtwo{0}{1} & $\eta$ & \inelemtwo{0}{1} \\ \end{Element} \begin{QuadPoints}{lc} Coord. \elemcoortwod & \inquadtwo{\third}{\third} \\ \elemline Weight & \half \\ \end{QuadPoints} \subsection{Triangle 6\index{Elements!2D!Triangle 6}} \begin{Element}{2D} 1 & \inelemtwo{0}{0} & $-\left(1-\xi-\eta\right)\left(1-2\left(1-\xi-\eta\right)\right)$ & \inelemtwo{1-4\left(1-\xi-\eta\right)}{1-4\left(1-\xi-\eta\right)} \\ \elemline 2 & \inelemtwo{1}{0} & $-\xi\left(1-2\xi\right)$ & \inelemtwo{4\xi-1}{0} \\ \elemline 3 & \inelemtwo{0}{1} & $-\eta\left(1-2\eta\right)$ & \inelemtwo{0}{4\eta-1} \\ \elemline 4 & \inelemtwo{\half}{0} & $4\xi\left(1-\xi-\eta\right)$ & \inelemtwo{4\left(1-2\xi-\eta\right)}{-4\xi} \\ \elemline 5 & \inelemtwo{\half}{\half} & $4\xi\eta$ & \inelemtwo{4\eta}{4\xi} \\ \elemline 6 & \inelemtwo{0}{\half} & $4\eta\left(1-\xi-\eta\right)$ & \inelemtwo{-4\eta}{4\left(1-\xi-2\eta\right)} \\ \elemline \end{Element} \begin{QuadPoints}{lccc} Coord. \elemcoortwod & \inquadtwo{\sixth}{\sixth} & \inquadtwo{\twothird}{\sixth} & \inquadtwo{\sixth}{\twothird} \\ \elemline Weight & \sixth & \sixth & \sixth \\ \end{QuadPoints} \clearpage \subsection{Quadrangle 4\index{Elements!2D!Quadrangle 4}} \begin{Element}{2D} 1 & \inelemtwo{-1}{-1} & $\quart\left(1-\xi\right)\left(1-\eta\right)$ & \inelemtwo{-\quart\left(1-\eta\right)}{-\quart\left(1-\xi\right)} \\ \elemline 2 & \inelemtwo{1}{-1} & $\quart\left(1+\xi\right)\left(1-\eta\right)$ & \inelemtwo{\quart\left(1-\eta\right)}{-\quart\left(1+\xi\right)} \\ \elemline 3 & \inelemtwo{1}{1} & $\quart\left(1+\xi\right)\left(1+\eta\right)$ & \inelemtwo{\quart\left(1+\eta\right)}{\quart\left(1+\xi\right)} \\ \elemline 4 & \inelemtwo{-1}{1} & $\quart\left(1-\xi\right)\left(1+\eta\right)$ & \inelemtwo{-\quart\left(1+\eta\right)}{\quart\left(1-\xi\right)} \\ \end{Element} \begin{QuadPoints}{lcccc} \elemcoortwod & \inquadtwo{-\invsqrtthree}{-\invsqrtthree} & \inquadtwo{\invsqrtthree}{-\invsqrtthree} & \inquadtwo{\invsqrtthree}{\invsqrtthree} & \inquadtwo{-\invsqrtthree}{\invsqrtthree} \\ \elemline Weight & 1 & 1 & 1 & 1 \\ \end{QuadPoints} \subsection{Quadrangle 8\index{Elements!2D!Quadrangle 8}} \begin{Element}{2D} 1 & \inelemtwo{-1}{-1} & $\quart\left(1-\xi\right)\left(1-\eta\right)\left(-1-\xi-\eta\right)$ & \inelemtwo{\quart\left(1-\eta\right)\left(2\xi+\eta\right)} {\quart\left(1-\xi\right)\left(\xi+2\eta\right)} \\ \elemline 2 & \inelemtwo{1}{-1} & $\quart\left(1+\xi\right)\left(1-\eta\right)\left(-1+\xi-\eta\right)$ & \inelemtwo{\quart\left(1-\eta\right)\left(2\xi-\eta\right)} {-\quart\left(1+\xi\right)\left(\xi-2\eta\right)} \\ \elemline 3 & \inelemtwo{1}{1} & $\quart\left(1+\xi\right)\left(1+\eta\right)\left(-1+\xi+\eta\right)$ & \inelemtwo{\quart\left(1+\eta\right)\left(2\xi+\eta\right)} {\quart\left(1+\xi\right)\left(\xi+2\eta\right)} \\ \elemline 4 & \inelemtwo{-1}{1} & $\quart\left(1-\xi\right)\left(1+\eta\right)\left(-1-\xi+\eta\right)$ & \inelemtwo{\quart\left(1+\eta\right)\left(2\xi-\eta\right)} {-\quart\left(1-\xi\right)\left(\xi-2\eta\right)} \\ \elemline 5 & \inelemtwo{0}{-1} & $\half\left(1-\xi^{2}\right)\left(1-\eta\right)$ & \inelemtwo{-\xi\left(1-\eta\right)} {-\half\left(1-\xi^{2}\right)} \\ \elemline 6 & \inelemtwo{1}{0} & $\half\left(1+\xi\right)\left(1-\eta^{2}\right)$ & \inelemtwo{\half\left(1-\eta^{2}\right)} {-\eta\left(1+\xi\right)} \\ \elemline 7 & \inelemtwo{0}{1} & $\half\left(1-\xi^{2}\right)\left(1+\eta\right)$ & \inelemtwo{-\xi\left(1+\eta\right)} {\half\left(1-\xi^{2}\right)} \\ \elemline 8 & \inelemtwo{-1}{0} & $\half\left(1-\xi\right)\left(1-\eta^{2}\right)$ & \inelemtwo{-\half\left(1-\eta^{2}\right)} {-\eta\left(1-\xi\right)} \\ \end{Element} \begin{QuadPoints}{lccccc} Coord. \elemcoortwod & \inquadtwo{0}{0} & \inquadtwo{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \inquadtwo{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \inquadtwo{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} & \inquadtwo{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} \\ \elemline Weight & 64/81 & 25/81 & 25/81 & 25/81 & 25/81 \\ \elemline Coord. \elemcoortwod & \inquadtwo{0}{\sqrt{\tfrac{3}{5}}} & \inquadtwo{-\sqrt{\tfrac{3}{5}}}{0} & \inquadtwo{0}{-\sqrt{\tfrac{3}{5}}} & \inquadtwo{\sqrt{\tfrac{3}{5}}}{0} & \\ \elemline Weight & 40/81 & 40/81 & 40/81 & 40/81 & \\ \end{QuadPoints} \clearpage %%%%%%%%%% 3D %%%%%%%%% \section{3D-Shape Functions\index{Elements!3D}} %\section{Isoparametric Elements in 3D\index{Elements!3D}} \subsection{Tetrahedron 4\index{Elements!3D!Tetrahedron 4}} \begin{Element}{3D} 1 & \inelemthree{0}{0}{0} & $1-\xi-\eta-\zeta$ & \inelemthree{-1}{-1}{-1} \\ \elemline 2 & \inelemthree{1}{0}{0} & $\xi$ & \inelemthree{1}{0}{0} \\ \elemline 3 & \inelemthree{0}{1}{0} & $\eta$ & \inelemthree{0}{1}{0} \\ \elemline 4 & \inelemthree{0}{0}{1} & $\zeta$ & \inelemthree{0}{0}{1} \\ \end{Element} \begin{QuadPoints}{lc} Coord. \elemcoorthreed & \inquadthree{\quart}{\quart}{\quart} \\ \elemline Weight & \sixth \\ \end{QuadPoints} \subsection{Tetrahedron 10\index{Elements!3D!Tetrahedron 10}} \begin{Element}{3D} 1 & \inelemthree{0}{0}{0} & $\left(1-\xi-\eta-\zeta\right)\left(1-2\xi-2\eta-2\zeta\right)$ & \inelemthreecolumn{4\xi+4\eta+4\zeta-3}{4\xi+4\eta+4\zeta-3}{4\xi+4\eta+4\zeta-3}\\ \elemline 2 & \inelemthree{1}{0}{0} & $\xi\left(2\xi-1\right)$ & \inelemthree{4\xi-1}{0}{0} \\ \elemline 3 & \inelemthree{0}{1}{0} & $\eta\left(2\eta-1\right)$ & \inelemthree{0}{4\eta-1}{0} \\ \elemline 4 & \inelemthree{0}{0}{1} & $\zeta\left(2\zeta-1\right)$ & \inelemthree{0}{0}{4\zeta-1} \\ \elemline 5 & \inelemthree{\half}{0}{0} & $4\xi\left(1-\xi-\eta-\zeta\right)$ & \inelemthree{4-8\xi-4\eta-4\zeta}{-4\xi}{-4\xi} \\ \elemline 6 & \inelemthree{\half}{\half}{0} & $4\xi\eta$ & \inelemthree{4\eta}{4\xi}{0} \\ \elemline 7 & \inelemthree{0}{\half}{0} & $4\eta\left(1-\xi-\eta-\zeta\right)$ & \inelemthree{-4\eta}{4-4\xi-8\eta-4\zeta}{-4\eta} \\ \elemline 8 & \inelemthree{0}{0}{\half} & $4\zeta\left(1-\xi-\eta-\zeta\right)$ & \inelemthree{-4\zeta}{-4\zeta}{4-4\xi-4\eta-8\zeta} \\ \elemline 9 & \inelemthree{\half}{0}{\half} & $4\xi\zeta$ & \inelemthree{4\zeta}{0}{4\xi} \\ \elemline 10 & \inelemthree{0}{\half}{\half} & $4\eta\zeta$ & \inelemthree{0}{4\zeta}{4\eta} \\ \end{Element} \begin{QuadPoints}{lcc} Coord. \elemcoorthreed & \inquadthree{\quada}{\quada}{\quada} & \inquadthree{\quadb}{\quada}{\quada} \\ \elemline Weight & 1/24 & 1/24 \\ \elemline Coord. \elemcoorthreed & \inquadthree{\quada}{\quadb}{\quada} & \inquadthree{\quada}{\quada}{\quadb} \\ \elemline Weight & 1/24 & 1/24 \\ \end{QuadPoints} \clearpage \subsection{Hexahedron 8\index{Elements!3D!Hexahedron 8}} \begin{Element}{3D} 1 & \inelemthree{-1}{-1}{-1} & $\eighth\left(1-\xi\right)\left(1-\eta\right)\left(1-\zeta\right)$ & \inelemthree{-\eighth\left(1-\eta\right)\left(1-\zeta\right)} {-\eighth\left(1-\xi\right)\left(1-\zeta\right)} {-\eighth\left(1-\xi\right)\left(1-\eta\right)} \\ \elemline 2 & \inelemthree{1}{-1}{-1} & $\eighth\left(1+\xi\right)\left(1-\eta\right)\left(1-\zeta\right)$ & \inelemthree{ \eighth\left(1-\eta\right)\left(1-\zeta\right)} {-\eighth\left(1+\xi\right)\left(1-\zeta\right)} {-\eighth\left(1+\xi\right)\left(1-\eta\right)} \\ \elemline 3 & \inelemthree{1}{1}{-1} & $\eighth\left(1+\xi\right)\left(1+\eta\right)\left(1-\zeta\right)$ & \inelemthree{ \eighth\left(1+\eta\right)\left(1-\zeta\right)} { \eighth\left(1+\xi\right)\left(1-\zeta\right)} {-\eighth\left(1+\xi\right)\left(1+\eta\right)} \\ \elemline 4 & \inelemthree{-1}{1}{-1} & $\eighth\left(1-\xi\right)\left(1+\eta\right)\left(1-\zeta\right)$ & \inelemthree{-\eighth\left(1+\eta\right)\left(1-\zeta\right)} { \eighth\left(1-\xi\right)\left(1-\zeta\right)} {-\eighth\left(1-\xi\right)\left(1+\eta\right)} \\ \elemline 5 & \inelemthree{-1}{-1}{1} & $\eighth\left(1-\xi\right)\left(1-\eta\right)\left(1+\zeta\right)$ & \inelemthree{-\eighth\left(1-\eta\right)\left(1+\zeta\right)} {-\eighth\left(1-\xi\right)\left(1+\zeta\right)} { \eighth\left(1-\xi\right)\left(1-\eta\right)} \\ \elemline 6 & \inelemthree{1}{-1}{1} & $\eighth\left(1+\xi\right)\left(1-\eta\right)\left(1+\zeta\right)$ & \inelemthree{ \eighth\left(1-\eta\right)\left(1+\zeta\right)} {-\eighth\left(1+\xi\right)\left(1+\zeta\right)} { \eighth\left(1+\xi\right)\left(1-\eta\right)} \\ \elemline 7 & \inelemthree{1}{1}{1} & $\eighth\left(1+\xi\right)\left(1+\eta\right)\left(1+\zeta\right)$ & \inelemthree{ \eighth\left(1+\eta\right)\left(1+\zeta\right)} { \eighth\left(1+\xi\right)\left(1+\zeta\right)} { \eighth\left(1+\xi\right)\left(1+\eta\right)} \\ \elemline 8 & \inelemthree{-1}{1}{1} & $\eighth\left(1-\xi\right)\left(1+\eta\right)\left(1+\zeta\right)$ & \inelemthree{-\eighth\left(1+\eta\right)\left(1+\zeta\right)} { \eighth\left(1-\xi\right)\left(1+\zeta\right)} { \eighth\left(1-\xi\right)\left(1+\eta\right)} \\ \end{Element} \begin{QuadPoints}{lcccc} \elemcoorthreed & \inquadthree{-\invsqrtthree}{-\invsqrtthree}{-\invsqrtthree} & \inquadthree{\invsqrtthree}{-\invsqrtthree}{-\invsqrtthree} & \inquadthree{\invsqrtthree}{\invsqrtthree}{-\invsqrtthree} & \inquadthree{-\invsqrtthree}{\invsqrtthree}{-\invsqrtthree} \\ \elemline Weight & 1 & 1 & 1 & 1 \\ \elemline \elemcoorthreed & \inquadthree{-\invsqrtthree}{-\invsqrtthree}{\invsqrtthree} & \inquadthree{\invsqrtthree}{-\invsqrtthree}{\invsqrtthree} & \inquadthree{\invsqrtthree}{\invsqrtthree}{\invsqrtthree} & \inquadthree{-\invsqrtthree}{\invsqrtthree}{\invsqrtthree} \\ \elemline Weight & 1 & 1 & 1 & 1 \\ \end{QuadPoints} \subsection{Pentahedron 6\index{Elements!3D!Pentahedron 6}} \begin{Element}{3D} 1 & \inelemthree{-1}{1}{0} & $\half\left(1-\xi\right)\eta$ & \inelemthree{-\half\eta} { \half\left(1-\xi\right)} {0.0} \\ \elemline 2 & \inelemthree{-1}{0}{1} & $\half\left(1-\xi\right)\zeta$ & \inelemthree{-\half\zeta} {0.0} {\half\left(1-\xi\right)} \\ \elemline 3 & \inelemthree{-1}{0}{0} & $\half\left(1-\xi\right)\left(1-\eta-\zeta\right)$ & \inelemthree{-\half\left(1-\eta-\zeta\right)} {-\half\left(1-\xi\right)} {-\half\left(1-\xi\right)} \\ \elemline 4 & \inelemthree{1}{1}{0} & $\half\left(1+\xi\right)\eta$ & \inelemthree{ \half\eta} { \half\left(1+\xi\right)} {0.0} \\ \elemline 5 & \inelemthree{1}{0}{1} & $\half\left(1+\xi\right)\zeta$ & \inelemthree{ \half\zeta} {0.0} { \half\left(1+\xi\right)} \\ \elemline 6 & \inelemthree{1}{0}{0} & $\half\left(1+\xi\right)\left(1-\eta-\zeta\right)$ & \inelemthree{ \half\left(1-\eta-\zeta\right)} {-\half\left(1+\xi\right)} {-\half\left(1+\xi\right)} \\ \end{Element} \begin{QuadPoints}{lcccccc} \elemcoorthreed & \inquadthree{-\invsqrtthree}{0.5}{0.5} & \inquadthree{-\invsqrtthree}{0.0}{0.5} & \inquadthree{-\invsqrtthree}{0.5}{0.0} & \inquadthree{\invsqrtthree}{0.5}{0.5} & \inquadthree{\invsqrtthree}{0.0}{0.5} & \inquadthree{\invsqrtthree}{0.5}{0.0} \\ \elemline Weight & 1/6 & 1/6 & 1/6 & 1/6 & 1/6 & 1/6 \\ \end{QuadPoints} \clearpage \subsection{Hexahedron 20\index{Elements!3D!Hexahedron 20}} \begin{Element_part1}{3D} 1 & \inelemthree{-1}{-1}{-1} & $\eighth\left(1-\xi\right)\left(1-\eta\right)\left(1-\zeta\right)\left(-2-\xi-\eta-\zeta\right)$ \\ \elemline 2 & \inelemthree{1}{-1}{-1} & $\eighth\left(1+\xi\right)\left(1-\eta\right)\left(1-\zeta\right)\left(-2+\xi-\eta-\zeta\right)$ \\ \elemline 3 & \inelemthree{1}{1}{-1} & $\eighth\left(1+\xi\right)\left(1+\eta\right)\left(1-\zeta\right)\left(-2+\xi+\eta-\zeta\right)$ \\ \elemline 4 & \inelemthree{-1}{1}{-1} & $\eighth\left(1-\xi\right)\left(1+\eta\right)\left(1-\zeta\right)\left(-2-\xi+\eta-\zeta\right)$ \\ \elemline 5 & \inelemthree{-1}{-1}{1} & $\eighth\left(1-\xi\right)\left(1-\eta\right)\left(1+\zeta\right)\left(-2-\xi-\eta+\zeta\right)$ \\ \elemline 6 & \inelemthree{1}{-1}{1} & $\eighth\left(1+\xi\right)\left(1-\eta\right)\left(1+\zeta\right)\left(-2+\xi-\eta+\zeta\right)$ \\ \elemline 7 & \inelemthree{1}{1}{1} & $\eighth\left(1+\xi\right)\left(1+\eta\right)\left(1+\zeta\right)\left(-2+\xi+\eta+\zeta\right)$ \\ \elemline 8 & \inelemthree{-1}{1}{1} & $\eighth\left(1-\xi\right)\left(1+\eta\right)\left(1+\zeta\right)\left(-2-\xi+\eta+\zeta\right)$ \\ \elemline 9 & \inelemthree{0}{-1}{-1} & $\quart\left(1-\xi^{2}\right)\left(1-\eta\right)\left(1-\zeta\right)$ \\ \elemline 10 & \inelemthree{1}{0}{-1} & $\quart\left(1+\xi\right)\left(1-\eta^{2}\right)\left(1-\zeta\right)$ \\ \elemline 11 & \inelemthree{0}{1}{-1} & $\quart\left(1-\xi^{2}\right)\left(1+\eta\right)\left(1-\zeta\right)$ \\ \elemline 12 & \inelemthree{-1}{0}{-1} & $\quart\left(1-\xi\right)\left(1-\eta^{2}\right)\left(1-\zeta\right)$ \\ \elemline 13 & \inelemthree{-1}{-1}{0} & $\quart\left(1-\xi\right)\left(1-\eta\right)\left(1-\zeta^{2}\right)$ \\ \elemline 14 & \inelemthree{1}{-1}{0} & $\quart\left(1+\xi\right)\left(1-\eta\right)\left(1-\zeta^{2}\right)$ \\ \elemline 15 & \inelemthree{1}{1}{0} & $\quart\left(1+\xi\right)\left(1+\eta\right)\left(1-\zeta^{2}\right)$ \\ \elemline 16 & \inelemthree{-1}{1}{0} & $\quart\left(1-\xi\right)\left(1+\eta\right)\left(1-\zeta^{2}\right)$ \\ \elemline 17 & \inelemthree{0}{-1}{1} & $\quart\left(1-\xi^{2}\right)\left(1-\eta\right)\left(1+\zeta\right)$ \\ \elemline 18 & \inelemthree{1}{0}{1} & $\quart\left(1+\xi\right)\left(1-\eta^{2}\right)\left(1+\zeta\right)$ \\ \elemline 19 & \inelemthree{0}{1}{1} & $\quart\left(1-\xi^{2}\right)\left(1+\eta\right)\left(1+\zeta\right)$ \\ \elemline 20 & \inelemthree{-1}{0}{1} & $\quart\left(1-\xi\right)\left(1-\eta^{2}\right)\left(1+\zeta\right)$ \\ \end{Element_part1} \clearpage \begin{Element_part2}{3D} 1 & \inelemthree{ \quart\left(\xi+\half\left(\eta+\zeta+1\right)\right)\left(\eta-1\right)\left(\zeta-1\right)} { \quart\left(\eta+\half\left(\xi+\zeta+1\right)\right)\left(\xi-1\right)\left(\zeta-1\right)} { \quart\left(\zeta+\half\left(\xi+\eta+1\right)\right)\left(\xi-1\right)\left(\eta-1\right)} \\ \elemline 2 & \inelemthree{ \quart\left(\xi-\half\left(\eta+\zeta+1\right)\right)\left(\eta-1\right)\left(\zeta-1\right)} {-\quart\left(\eta-\half\left(\xi-\zeta-1\right)\right)\left(\xi+1\right)\left(\zeta-1\right)} {-\quart\left(\zeta-\half\left(\xi-\eta-1\right)\right)\left(\xi+1\right)\left(\eta-1\right)} \\ \elemline 3 & \inelemthree{-\quart\left(\xi+\half\left(\eta-\zeta-1\right)\right)\left(\eta+1\right)\left(\zeta-1\right)} {-\quart\left(\eta+\half\left(\xi-\zeta-1\right)\right)\left(\xi+1\right)\left(\zeta-1\right)} { \quart\left(\zeta-\half\left(\xi+\eta-1\right)\right)\left(\xi+1\right)\left(\eta+1\right)} \\ \elemline 4 & \inelemthree{-\quart\left(\xi-\half\left(\eta-\zeta-1\right)\right)\left(\eta+1\right)\left(\zeta-1\right)} { \quart\left(\eta-\half\left(\xi+\zeta+1\right)\right)\left(\xi-1\right)\left(\zeta-1\right)} {-\quart\left(\zeta+\half\left(\xi-\eta+1\right)\right)\left(\xi-1\right)\left(\eta+1\right)} \\ \elemline 5 & \inelemthree{-\quart\left(\xi+\half\left(\eta-\zeta+1\right)\right)\left(\eta-1\right)\left(\zeta+1\right)} {-\quart\left(\eta+\half\left(\xi-\zeta+1\right)\right)\left(\xi-1\right)\left(\zeta+1\right)} { \quart\left(\zeta-\half\left(\xi+\eta+1\right)\right)\left(\xi-1\right)\left(\eta-1\right)} \\ \elemline 6 & \inelemthree{-\quart\left(\xi-\half\left(\eta-\zeta+1\right)\right)\left(\eta-1\right)\left(\zeta+1\right)} { \quart\left(\eta-\half\left(\xi+\zeta-1\right)\right)\left(\xi+1\right)\left(\zeta+1\right)} {-\quart\left(\zeta+\half\left(\xi-\eta-1\right)\right)\left(\xi+1\right)\left(\eta-1\right)} \\ \elemline 7 & \inelemthree{ \quart\left(\xi+\half\left(\eta+\zeta-1\right)\right)\left(\eta+1\right)\left(\zeta+1\right)} { \quart\left(\eta+\half\left(\xi+\zeta-1\right)\right)\left(\xi+1\right)\left(\zeta+1\right)} { \quart\left(\zeta+\half\left(\xi+\eta-1\right)\right)\left(\xi+1\right)\left(\eta+1\right)} \\ \elemline 8 & \inelemthree{ \quart\left(\xi-\half\left(\eta+\zeta-1\right)\right)\left(\eta+1\right)\left(\zeta+1\right)} {-\quart\left(\eta-\half\left(\xi-\zeta+1\right)\right)\left(\xi-1\right)\left(\zeta+1\right)} {-\quart\left(\zeta-\half\left(\xi-\eta+1\right)\right)\left(\xi-1\right)\left(\eta+1\right)} \\ \elemline 9 & \inelemthree{-\half\xi\left(\eta-1\right)\left(\zeta-1\right)} {-\quart\left(\xi^{2}-1\right)\left(\zeta-1\right)} {-\quart\left(\xi^{2}-1\right)\left(\eta-1\right)} \\ \elemline 10 & \inelemthree{ \quart\left(\eta^{2}-1\right)\left(\zeta-1\right)} { \half\eta\left(\xi+1\right)\left(\zeta-1\right)} { \quart\left(\xi+1\right)\left(\eta^{2}-1\right)} \\ \elemline 11 & \inelemthree{ \half\xi\left(\eta+1\right)\left(\zeta-1\right)} { \quart\left(\xi^{2}-1\right)\left(\zeta-1\right)} { \quart\left(\xi^{2}-1\right)\left(\eta+1\right)} \\ \elemline 12 & \inelemthree{-\quart\left(\eta^{2}-1\right)\left(\zeta-1\right)} {-\half\eta\left(\xi-1\right)\left(\zeta-1\right)} {-\quart\left(\xi-1\right)\left(\eta^{2}-1\right)} \\ \elemline 13 & \inelemthree{-\quart\left(\eta-1\right)\left(\zeta^{2}-1\right)} {-\quart\left(\xi-1\right)\left(\zeta^{2}-1\right)} {-\half\zeta\left(\xi-1\right)\left(\eta-1\right)} \\ \elemline 14 & \inelemthree{ \quart\left(\eta-1\right)\left(\zeta^{2}-1\right)} { \quart\left(\xi+1\right)\left(\zeta^{2}-1\right)} { \half\zeta\left(\xi+1\right)\left(\eta-1\right)} \\ \elemline 15 & \inelemthree{-\quart\left(\eta+1\right)\left(\zeta^{2}-1\right)} {-\quart\left(\xi+1\right)\left(\zeta^{2}-1\right)} {-\half\zeta\left(\xi+1\right)\left(\eta+1\right)} \\ \elemline 16 & \inelemthree{ \quart\left(\eta+1\right)\left(\zeta^{2}-1\right)} { \quart\left(\xi-1\right)\left(\zeta^{2}-1\right)} { \half\zeta\left(\xi-1\right)\left(\eta+1\right)} \\ \elemline 17 & \inelemthree{ \half\xi\left(\eta-1\right)\left(\zeta+1\right)} { \quart\left(\xi^{2}-1\right)\left(\zeta+1\right)} { \quart\left(\xi^{2}-1\right)\left(\eta-1\right)} \\ \elemline 18 & \inelemthree{-\quart\left(\eta^{2}-1\right)\left(\zeta+1\right)} {-\half\eta\left(\xi+1\right)\left(\zeta+1\right)} {-\quart\left(\xi+1\right)\left(\eta^{2}-1\right)} \\ \elemline 19 & \inelemthree{-\half\xi\left(\eta+1\right)\left(\zeta+1\right)} {-\quart\left(\xi^{2}-1\right)\left(\zeta+1\right)} {-\quart\left(\xi^{2}-1\right)\left(\eta+1\right)} \\ \elemline 20 & \inelemthree{ \quart\left(\eta^{2}-1\right)\left(\zeta+1\right)} { \half\eta\left(\xi-1\right)\left(\zeta+1\right)} { \quart\left(\xi-1\right)\left(\eta^{2}-1\right)} \\ \end{Element_part2} \begin{QuadPoints}{lcccc} Coord. \elemcoorthreed & \inquadthree{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} {-\sqrt{\tfrac{3}{5}}} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} {0} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} {\sqrt{\tfrac{3}{5}}} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{0} {-\sqrt{\tfrac{3}{5}}} \\ \elemline Weight & 125/729 & 200/729 & 125/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{-\sqrt{\tfrac{3}{5}}}{0}{0} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{0}{\sqrt{\tfrac{3}{5}}} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{0} \\ \elemline Weight & 320/729 & 200/729 & 125/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \inquadthree{0}{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{0}{-\sqrt{\tfrac{3}{5}}}{0} & \inquadthree{0}{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} \\ \elemline Weight & 125/729 & 200/729 & 320/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{0}{0}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{0}{0}{0} & \inquadthree{0}{0}{\sqrt{\tfrac{3}{5}}} & \inquadthree{0}{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} \\ \elemline Weight & 320/729 & 512/729 & 320/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{0}{\sqrt{\tfrac{3}{5}}}{0} & \inquadthree{0}{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \inquadthree{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}}{0} \\ \elemline Weight & 320/729 & 200/729 & 125/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \inquadthree{\sqrt{\tfrac{3}{5}}}{0}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{\sqrt{\tfrac{3}{5}}}{0}{0} & \inquadthree{\sqrt{\tfrac{3}{5}}}{0}{\sqrt{\tfrac{3}{5}}} \\ \elemline Weight & 125/729 & 200/729 & 320/729 & 200/729 \\ \elemline Coord. \elemcoorthreed & \inquadthree{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{-\sqrt{\tfrac{3}{5}}} & \inquadthree{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{0} & \inquadthree{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}}{\sqrt{\tfrac{3}{5}}} & \\ \elemline Weight & 125/729 & 200/729 & 125/729 & \\ \end{QuadPoints} \clearpage \subsection{Pentahedron 15\index{Elements!3D!Pentahedron 15}} \begin{Element_part1}{3D} 1 & \inelemthree{-1}{1}{0} & $\half\eta\left(1-\xi\right)\left(2\eta-2-\xi\right)$ \\ \elemline 2 & \inelemthree{-1}{0}{1} & $\half\zeta\left(1-\xi\right)\left(2\zeta-2-\xi\right)$ \\ \elemline 3 & \inelemthree{-1}{0}{0} & $\half\left(\xi-1\right)\left(1-\eta-\zeta\right)\left(\xi+2\eta+2\zeta\right)$ \\ \elemline 4 & \inelemthree{1}{1}{0} & $\half\eta\left(1+\xi\right)\left(2\eta-2+\xi\right)$ \\ \elemline 5 & \inelemthree{1}{0}{1} & $\half\zeta\left(1+\xi\right)\left(2\zeta-2+\xi\right)$ \\ \elemline 6 & \inelemthree{1}{0}{0} & $\half\left(-\xi-1\right)\left(1-\eta-\zeta\right)\left(-\xi+2\eta+2\zeta\right)$ \\ \elemline 7 & \inelemthree{-1}{0.5}{0.5} & $2\eta\zeta\left(1-\xi\right)$ \\ \elemline 8 & \inelemthree{-1}{0}{0.5} & $2\zeta\left(1-\eta-\zeta\right)\left(1-\xi\right)$ \\ \elemline 9 & \inelemthree{-1}{0.5}{0} & $2\eta\left(1-\xi\right)\left(1-\eta-\zeta\right)$ \\ \elemline 10 & \inelemthree{0}{1}{0} & $\eta\left(1-\xi^{2}\right)$ \\ \elemline 11 & \inelemthree{0}{0}{1} & $\zeta\left(1-\xi^{2}\right)$ \\ \elemline 12 & \inelemthree{0}{0}{0} & $\left(1-\xi^{2}\right)\left(1-\eta-\zeta\right)$ \\ \elemline 13 & \inelemthree{1}{0.5}{0.5} & $2\eta\zeta\left(1+\xi\right)$ \\ \elemline 14 & \inelemthree{1}{0}{0.5} & $2\zeta\left(1+\xi\right)\left(1-\eta-\zeta\right)$ \\ \elemline 15 & \inelemthree{1}{0.5}{0} & $2\eta\left(1+\xi\right)\left(1-\eta-\zeta\right)$ \\ \end{Element_part1} \clearpage \begin{Element_part2}{3D} 1 & \inelemthree{ \half\eta\left(2\xi-2\eta+1\right)} {-\half\left(\xi-1\right)\left(4\eta-\xi-2\right)} { 0.0} \\ \elemline 2 & \inelemthree{ \half\zeta\left(2\xi-2\zeta+1\right)} { 0.0} {-\half\left(\xi-1\right)\left(4\zeta-\xi-2\right)} \\ \elemline 3 & \inelemthree{-\half\left(2\xi+2\eta+2\zeta-1\right)\left(\eta+\zeta-1\right)} {-\half\left(\xi-1\right)\left(4\eta+\xi+2\left(2\zeta-1\right)\right)} {-\half\left(\xi-1\right)\left(4\zeta+\xi+2\left(2\eta-1\right)\right)} \\ \elemline 4 & \inelemthree{ \half\eta\left(2\xi+2\eta-1\right)} { \half\left(\xi+1\right)\left(4\eta+\xi-2\right)} { 0.0} \\ \elemline 5 & \inelemthree{ \half\zeta\left(2\xi+2\zeta-1\right)} { 0.0} { \half\left(\xi+1\right)\left(4\zeta+\xi-2\right)} \\ \elemline 6 & \inelemthree{-\half\left(\eta+\zeta-1\right)\left(2\xi-2\eta-2\zeta+1\right)} { \half\left(\xi+1\right)\left(4\eta-\xi+2\left(2\zeta-1\right)\right)} { \half\left(\xi+1\right)\left(4\zeta-\xi+2\left(2\eta-1\right)\right)} \\ \elemline 7 & \inelemthree{-2\eta\zeta} {-2\left(\xi-1\right)\zeta} {-2\left(\xi-1\right)\eta} \\ \elemline 8 & \inelemthree{ 2\zeta\left(\eta+\zeta-1\right)} { 2\zeta-\left(\xi-1\right)} { 2\left(\xi-1\right)\left(2\zeta+\eta-1\right)} \\ \elemline 9 & \inelemthree{ 2\eta\left(\eta+\zeta-1\right)} { 2\left(2\eta+\zeta-1\right)\left(\xi-1\right)} { 2\eta\left(\xi-1\right)} \\ \elemline 10 & \inelemthree{-2\xi\eta} {-\left(\xi^{2}-1\right)} { 0.0} \\ \elemline 11 & \inelemthree{-2\xi\zeta} { 0.0} {-\left(\xi^{2}-1\right)} \\ \elemline 12 & \inelemthree{ 2\xi\left(\eta+\zeta-1\right)} { \left(\xi^{2}-1\right)} { \left(\xi^{2}-1\right)} \\ \elemline 13 & \inelemthree{ 2\eta\zeta} { 2\zeta\left(\xi+1\right)} { 2\eta\left(\xi+1\right)} \\ \elemline 14 & \inelemthree{-2\zeta\left(\eta+\zeta-1\right)} {-2\zeta\left(\xi+1\right)} {-2\left(\xi+1\right)\left(2\zeta+\eta-1\right)} \\ \elemline 15 & \inelemthree{-2\eta\left(\eta+\zeta-1\right)} {-2\left(2\eta+\zeta-1\right)\left(\xi+1\right)} {-2\eta\left(\xi+1\right)} \\ \end{Element_part2} \begin{QuadPoints}{lcccc} Coord. \elemcoorthreed & \inquadthree{-{\tfrac{1}{\sqrt{3}}}}{\tfrac{1}{3}}{\tfrac{1}{3}} & \inquadthree{-{\tfrac{1}{\sqrt{3}}}}{0.6}{0.2} & \inquadthree{-{\tfrac{1}{\sqrt{3}}}}{0.2}{0.6} & \inquadthree{-{\tfrac{1}{\sqrt{3}}}}{0.2}{0.2} \\ \elemline Weight & -27/96 & 25/96 & 25/96 & 25/96 \\ \elemline Coord. \elemcoorthreed & \inquadthree{{\tfrac{1}{\sqrt{3}}}}{\tfrac{1}{3}}{\tfrac{1}{3}} & \inquadthree{{\tfrac{1}{\sqrt{3}}}}{0.6}{0.2} & \inquadthree{{\tfrac{1}{\sqrt{3}}}}{0.2}{0.6} & \inquadthree{{\tfrac{1}{\sqrt{3}}}}{0.2}{0.2} \\ \elemline Weight & -27/96 & 25/96 & 25/96 & 25/96 \\ \end{QuadPoints} %%% Local Variables: %%% mode: latex %%% TeX-master: "manual" %%% End: