summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/mandi
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-08-22 19:58:29 +0000
committerKarl Berry <karl@freefriends.org>2021-08-22 19:58:29 +0000
commiteab8544bd60408c04ed14726e87bf5dace53a63c (patch)
tree7afc598c8b5afabea5a151a106aa141af269c28a /Master/texmf-dist/doc/latex/mandi
parentea10d49412b34c5ad60d939f0f866c7ad381f2ad (diff)
mandi (22aug21)
git-svn-id: svn://tug.org/texlive/trunk@60300 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/mandi')
-rw-r--r--Master/texmf-dist/doc/latex/mandi/README10
-rw-r--r--Master/texmf-dist/doc/latex/mandi/README.md10
-rw-r--r--Master/texmf-dist/doc/latex/mandi/mandi.pdfbin1343851 -> 468489 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mandi/vdemo.py56
4 files changed, 47 insertions, 29 deletions
diff --git a/Master/texmf-dist/doc/latex/mandi/README b/Master/texmf-dist/doc/latex/mandi/README
deleted file mode 100644
index cc3680da78b..00000000000
--- a/Master/texmf-dist/doc/latex/mandi/README
+++ /dev/null
@@ -1,10 +0,0 @@
-The mandi package provides commands for typesetting symbols, expressions, and
-quantities used in introductory physics and astronomy. Many of the commands are
-inspired by Matter & Interactions by Ruth Chabay and Bruce Sherwood. Many of
-the astronomical commands were inspired by my own classroom needs. This package
-does not do computations. It only provides commands for typesetting.
-
-Run mandi.ins through pdfLaTeX to generate files mandi.sty and vdemo.py. Run
-mandi.dtx through pdfLaTeX to generate mandi.pdf (documentation). I assume a
-TeX Live 2011 or later distribution is installed.
-
diff --git a/Master/texmf-dist/doc/latex/mandi/README.md b/Master/texmf-dist/doc/latex/mandi/README.md
new file mode 100644
index 00000000000..66a938f5de7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mandi/README.md
@@ -0,0 +1,10 @@
+mandi provides commands for introductory physics. To install, open a command
+line and type the following, repeating 2-4 until there are no warnings:
+
+ 1. lualatex mandi.ins (can also use latex)
+ 2. lualatex mandi.dtx (lualatex is required)
+ 3. makeindex -s gind.ist -o mandi.ind mandi.idx
+ 4. makeindex -s gglo.ist -o mandi.gls mandi.glo
+
+Move the *.sty files into a directory searched by TeX.
+The vdemo.py file is not needed.
diff --git a/Master/texmf-dist/doc/latex/mandi/mandi.pdf b/Master/texmf-dist/doc/latex/mandi/mandi.pdf
index bb4f4fc9471..f86fe84c069 100644
--- a/Master/texmf-dist/doc/latex/mandi/mandi.pdf
+++ b/Master/texmf-dist/doc/latex/mandi/mandi.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mandi/vdemo.py b/Master/texmf-dist/doc/latex/mandi/vdemo.py
index 434dce5568c..5d626df6e2a 100644
--- a/Master/texmf-dist/doc/latex/mandi/vdemo.py
+++ b/Master/texmf-dist/doc/latex/mandi/vdemo.py
@@ -1,25 +1,43 @@
-#
from vpython import *
-G = 6.7e-11
+scene.width = 400
+scene.height = 760
+# constants and data
+g = 9.8 # m/s^2
+mball = 0.03 # kg
+Lo = 0.26 # m
+ks = 1.8 # N/m
+deltat = 0.01 # s
-# create objects
-giant = sphere(pos=vector(-1e11,0,0),radius=2e10,mass=2e30,color=color.red)
-giant.p = vector(0,0,-1e4) * giant.mass
-dwarf = sphere(pos=vector(1.5e11,0,0),radius=1e10,mass=1e30,color=color.yellow)
-dwarf.p = -giant.p
+# objects (origin is at ceiling)
+ceiling = box(pos=vector(0,0,0), length=0.2, height=0.01,
+ width=0.2)
+ball = sphere(pos=vector(0,-0.3,0),radius=0.025,
+ color=color.orange)
+spring = helix(pos=ceiling.pos, axis=ball.pos-ceiling.pos,
+ color=color.cyan,thickness=0.003,coils=40,
+ radius=0.010)
-for a in [giant,dwarf]:
- a.orbit = curve(color=a.color,radius=2e9)
+# initial values
+pball = mball * vector(0,0,0) # kg m/s
+Fgrav = mball * g * vector(0,-1,0) # N
+t = 0
-dt = 86400
-while 1:
- rate(100)
- dist = dwarf.pos - giant.pos
- force = G * giant.mass * dwarf.mass * dist / mag(dist)**3
- giant.p = giant.p + force*dt
- dwarf.p = dwarf.p - force*dt
- for a in [giant,dwarf]:
- a.pos = a.pos + a.p/a.mass * dt
- a.orbit.append(pos=a.pos)
+# improve the display
+scene.autoscale = False # turn off automatic camera zoom
+scene.center = vector(0,-Lo,0) # move camera down
+scene.waitfor('click') # wait for a mouse click
+# initial calculation loop
+# calculation loop
+while t < 10:
+ rate(100)
+ # we need the stretch
+ s = mag(ball.pos) - Lo
+ # we need the spring force
+ Fspring = ks * s * -norm(spring.axis)
+ Fnet = Fgrav + Fspring
+ pball = pball + Fnet * deltat
+ ball.pos = ball.pos + (pball / mball) * deltat
+ spring.axis = ball.pos - ceiling.pos
+ t = t + deltat