%%
%% This is file `mandiexp.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% mandiexp.dtx  (with options: `package')
%% 
%%  Copyright (C) 2021,2022 by Paul J. Heafner <heafnerj@gmail.com>
%%  ---------------------------------------------------------------------------
%%  This  work may be  distributed and/or modified  under the conditions of the
%%  LaTeX Project Public  License, either  version 1.3  of this  license or (at
%%  your option) any later version. The  latest  version  of this license is in
%%             http://www.latex-project.org/lppl.txt
%%  and  version 1.3 or  later is  part of  all distributions of  LaTeX version
%%  2005/12/01 or later.
%% 
%%  This work has the LPPL maintenance status `maintained'.
%% 
%%  The Current Maintainer of this work is Paul J. Heafner.
%% 
%%  This work consists of the files mandi.dtx
%%                                  mandistudent.dtx
%%                                  mandiexp.dtx
%%                                  mandi.ins
%%                                  mandi.pdf
%%                                  README.md
%% 
%%  and includes the derived files  mandi.sty
%%                                  mandistudent.sty
%%                                  mandiexp.sty
%%                                  vdemo.py (not needed)
%%  ---------------------------------------------------------------------------
%% 
\def\mandiexp@version{3.1.0}
\def\mandiexp@date{2022-01-27}
\NeedsTeXFormat{LaTeX2e}[2020-02-02]
\DeclareRelease{v3.1.0}{2022-01-27}{mandiexp.sty}
\DeclareCurrentRelease{v\mandiexp@version}{\mandiexp@date}
\ProvidesPackage{mandiexp}
  [\mandiexp@date\space v\mandiexp@version\space Macros for Matter & Interactions]
\newcommand*{\mandiexpversion}{v\mandiexp@version\space dated \mandiexp@date}
\RequirePackage{mandi}
\IfFormatAtLeastTF {2020-10-01} % load xparse if necessary
  {}%
  {\RequirePackage{xparse}}%
\typeout{}%
\typeout{mandiexp: You are using mandiexp \mandiexpversion.}
\typeout{mandiexp: This package requires LuaLaTeX.}%
\typeout{}%
\NewDocumentCommand{\lhsmomentumprinciple}{ s }%
  {%
    \Delta
    \IfBooleanTF{#1}%
      {%
        \vec*{p}
      }%
      {%
        \vec{p}%
      }%
    \sb{\symup{sys}}%
  }%
\NewDocumentCommand{\rhsmomentumprinciple}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{F}%
      }%
      {%
        \vec{F}%
      }%
    \sb{\symup{sys,net}}\,\Delta t%
  }%
\NewDocumentCommand{\lhsmomentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{p}%
      }%
      {%
        \vec{p}%
      }%
    \sb{\symup{sys,final}}%
  }%
\NewDocumentCommand{\rhsmomentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{p}%
      }%
      {%
        \vec{p}%
      }%
    \sb{\symup{sys,initial}}+%
    \IfBooleanTF{#1}%
      {%
        \vec*{F}%
      }%
      {%
        \vec{F}%
      }%
    \sb{\symup{sys,net}}\,\Delta t%
  }%
\NewDocumentCommand{\momentumprinciple}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \lhsmomentumprinciple* = \rhsmomentumprinciple*%
      }%
      {%
        \lhsmomentumprinciple = \rhsmomentumprinciple%
      }%
  }%
\NewDocumentCommand{\momentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \lhsmomentumprincipleupdate* = \rhsmomentumprincipleupdate*%
      }%
      {%
        \lhsmomentumprincipleupdate = \rhsmomentumprincipleupdate%
      }%
  }%
\NewDocumentCommand{\lhsenergyprinciple}{}%
  {%
    \Delta E_{\symup{sys}}%
  }%
\NewDocumentCommand{\rhsenergyprinciple}{ O{} }%
  {%
    W_{\symup{ext}}#1%
  }%
\NewDocumentCommand{\lhsenergyprincipleupdate}{}%
  {%
    E_{\symup{sys,final}}%
  }%
\NewDocumentCommand{\rhsenergyprincipleupdate}{ O{} }%
  {%
    E_{\symup{sys,initial}}+%
    W_{\symup{ext}}#1%
  }%
\NewDocumentCommand{\energyprinciple}{ O{} }%
  {%
    \lhsenergyprinciple = \rhsenergyprinciple[#1]%
  }%
\NewDocumentCommand{\energyprincipleupdate}{ O{} }%
  {%
    \lhsenergyprincipleupdate = \rhsenergyprincipleupdate[#1]%
  }%
\NewDocumentCommand{\lhsangularmomentumprinciple}{ s }%
  {%
    \Delta%
    \IfBooleanTF{#1}%
      {%
        \vec*{L}%
      }%
      {%
        \vec{L}%
      }%
    \sb{A\symup{,sys,net}}%
  }%
\NewDocumentCommand{\rhsangularmomentumprinciple}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{\tau}%
      }%
      {%
        \vec{\tau}%
      }%
    \sb{A\symup{,sys,net}}\,\Delta t%
  }%
\NewDocumentCommand{\lhsangularmomentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{L}%
      }%
      {%
        \vec{L}%
      }%
    \sb{A,\symup{sys,final}}%
  }%
\NewDocumentCommand{\rhsangularmomentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \vec*{L}%
      }%
      {%
        \vec{L}%
      }%
    \sb{A\symup{,sys,initial}}+%
    \IfBooleanTF{#1}%
      {%
        \vec*{\tau}%
      }%
      {%
        \vec{\tau}%
      }%
    \sb{A\symup{,sys,net}}\,\Delta t%
  }%
\NewDocumentCommand{\angularmomentumprinciple}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \lhsangularmomentumprinciple* = \rhsangularmomentumprinciple*%
      }%
      {%
        \lhsangularmomentumprinciple = \rhsangularmomentumprinciple%
      }%
  }%
\NewDocumentCommand{\angularmomentumprincipleupdate}{ s }%
  {%
    \IfBooleanTF{#1}%
      {%
        \lhsangularmomentumprincipleupdate* = \rhsangularmomentumprincipleupdate*%
      }%
      {%
        \lhsangularmomentumprincipleupdate = \rhsangularmomentumprincipleupdate%
      }%
  }%
\NewDocumentCommand{\energyof}{ m o }%
  {%
    E_{#1%
        \IfValueT{#2}%
          {,#2}%
      }%
  }%
\NewDocumentCommand{\systemenergy}{ o }%
  {%
    E_{\symup{sys}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\particleenergy}{ o }%
  {%
    E_{\symup{particle}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\restenergy}{ o }%
  {%
    E_{\symup{rest}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\internalenergy}{ o }%
  {%
    E_{\symup{internal}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\chemicalenergy}{ o }%
  {%
    E_{\symup{chem}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\thermalenergy}{ o }%
  {%
    E_{\symup{therm}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\photonenergy}{ o }%
  {%
    E_{\symup{photon}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\translationalkineticenergy}{ s d[] }%
  {%
    % d[] must be used because of the way consecutive optional
    %  arguments are handled. See xparse docs for details.
    %  See https://tex.stackexchange.com/a/569011/218142
    \IfBooleanTF{#1}%
      {%
        E_\bgroup \symup{K}%
      }%
      {%
        K_\bgroup\symup{trans}%
      }%
            \IfValueT{#2}{,#2}%
          \egroup%
  }%
\NewDocumentCommand{\rotationalkineticenergy}{ s d[] }%
  {%
    % d[] must be used because of the way consecutive optional
    %  arguments are handled. See xparse docs for details.
    %  See https://tex.stackexchange.com/a/569011/218142
    \IfBooleanTF{#1}%
      {%
        E_\bgroup%
      }%
      {%
        K_\bgroup%
      }%
            \symup{rot}\IfValueT{#2}{,#2}%
          \egroup%
  }%
\NewDocumentCommand{\vibrationalkineticenergy}{ s d[] }%
  {%
    % d[] must be used because of the way consecutive optional
    %  arguments are handled. See xparse docs for details.
    %  See https://tex.stackexchange.com/a/569011/218142
    \IfBooleanTF{#1}%
      {%
        E_\bgroup%
      }%
      {%
        K_\bgroup%
      }%
            \symup{vib}\IfValueT{#2}{,#2}%
          \egroup%
  }%
\NewDocumentCommand{\gravitationalpotentialenergy}{ o }%
  {%
    U_{\symup{g}%
        \IfValueT{#1}%
          {,#1}%
    }%
  }%
\NewDocumentCommand{\electricpotentialenergy}{ o }%
  {%
    U_{\symup{e}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\NewDocumentCommand{\springpotentialenergy}{ o }%
  {%
    U_{\symup{s}%
        \IfValueT{#1}%
          {,#1}%
      }%
  }%
\endinput
%%
%% End of file `mandiexp.sty'.
