cs240h: There are multiple years
cs240h: There are multiple years
Topology is the study of geometry minus the wiggles. More specifically topology studies continuous maps.
Topology separates into a number of sub fields.
The piece of topology that is most relevant to physics (partially because it is the most computational) is the notion of the notion of the topological invariant. Topological invariants are numbers that can be computed. If they disagree for two objects, then the two objects are not topologically equivalent. The reverse is not true.
An example of a topological invariant is the winding number of a closed curve around a point in 2d. This can also be interpreted as a classification of mappings from circles to circles.
Another example is the Euler number. The Euler number kind of counts the number of holes in a surface. It is defined as , the number of vertices minus edges plus the number of faces in a tessellation of a surface. If one considers the Euler number of possibly disconnected surfaces or edges or vertices, the Euler number does a decent job of counting the number of objects.
Nick Read has published a review article in Physics Today. Physics Todays is a pretty excellent introduction to modern topics if you can find an article on that topic.
Topological Matter has one or more of the following
Two objects that are far apart need to be brought together in order to be compared. A Connection is a specification on how to transport something around in space. This connection is defined differentially. Given a tiny displacement , what is the tiny change $dO$ in the corresponding object.
There are three examples of connections of different flavor.
The first is the connection defining parallel transport of vectors in a curved geometry.
The game goes like so: Suppose you want to transport a little arrow in the surface of a sphere to a new point on a sphere. You want a procedure to keep the arrow in the surface of the sphere. The simplest procedure is to project the arrow back into the sphere after moving it a tiny bit . Move, project. Move, project. This procedure keeps the arrow in the surface of the sphere the whole way. This procedure is the connection for parallel transporting the arrow on the sphere. (This procedure defines what it means for two arrows to be parallel at nearby points).
When one actually does this however, a curious thing results. The arrow upon returning to the original point after a closed loop, may have been rotated relative to the original arrow. Different paths of transport result in different amounts of turning. This turning is a result of the curvature of the sphere and the parallel transport procedure is a method by which to probe the curvature.
Rather that integrating the connection along the entire closed route, there is an alternative but equivalent way of doing the accounting. Consider a tiny loop or area . This loop causes a correspondingly tiny rotation . Because the rotation gets cancelled from traverse the same path in opposite directions, the sum of all the tiny loop rotations in an area will equal the rotation calculated for the bounding edge of that area. This is Stokes theorem about the curl if that helps.
Another connection is that of the electromagnetic vector potential . The vector potential specifies how to transport quantum amplitudes and compare them at different positions. This is the Aharonov-Bohm effect. When a particle travels through the vector potential it gets an extra phase .
A final connection is that connected to Berry Phase. Instead of talking about transport in physical geometrical space, Berry phase refers to transport in parameter space. This is analogous to the transition from cartesian coordinates in Newtonian mechanics to that of generalized coordinates in Lagrangian mechanics, which may not have a simple geometrical interpretation necessarily.
Berry phase can be interpreted as being similar to the extra phase that an oscillator might receive upon a cyclic change in its parameters for example slowly changing the length and mass of a pendulum. This seems like a small effect and it typically is a drop in the bucket compared to all the ordinary dynamic phase accumulated but it nevertheless exists and actually has a lot of conceptual importance.
A particularly important example of Berry phase is that of the spin-1/2. This occurs when you rotate the magnetic field that the spin is in for example.
$\Omega=\int \sin(\theta) d\theta \phi $ plus use some half angle identities.
In summary, the Berry phase is half of the solid angle enclosed by the path.
Next Time: Discretizing the Schrodinger Equation
Based on http://fpga4fun.com/PongGame.html
767 was the value checked for at 25Mhz. This is a count of 768.
I doubled it to 1535. and added one to all references to Counter X.
I am confused on these values. References I’m finding say to shoot for 31.5kHz but this works out to 32.5khz?
50e6/31.46875e3 gives 1588.87785501. Ok. That works too. I guess the monitor is just flexible.
I got an error for can’t use pin 101 which is V sync
Need to disable nCEO which is using that pin
module vga_test ( output vga_h_sync, output vga_v_sync, output R, output G, output B, input clk ); reg [10:0] CounterX; reg [8:0] CounterY; wire CounterXmaxed = (CounterX==1535); always @(posedge clk) if(CounterXmaxed) CounterX <= 0; else CounterX <= CounterX + 1; always @(posedge clk) if(CounterXmaxed) CounterY <= CounterY + 1; reg vga_HS, vga_VS; always @(posedge clk) begin vga_HS <= (CounterX[10:5]==0); // active for 16 clocks vga_VS <= (CounterY==0); // active for 768 clocks end assign vga_h_sync = ~vga_HS; assign vga_v_sync = ~vga_VS; assign R = CounterX;//CounterY | (CounterX==256); assign G = CounterX;//(CounterX ^ CounterX) | (CounterX==256); assign B = CounterX; //CounterX | (CounterX==256); endmodule
Alright. It appears to work. That is a good start.
I kind of cribbed from the wikipedia CAE listing
I think it would be cool to integrate all of these better. Simulate full EM equations.
Fenics uses Docker now? My how the world turns.
So that’s nice. Docker for Mac got slick as hell.
docker ps -a lists all guys
docker run -it –rm ubuntu
-v shares folders
They wrote stuff to this all for you
Sfepy also seems nice though. I hope that two seemingly equal options doesn’t cripple me.
I had to reinstall mayavi and vtk in order to get it working. I was just ripping at my distros. Hope that doesn’t bite me later.
Installed openfoam docker image
$FOAM_TUTORIALS is a variable with tutorial location
cp -R elbow ~/OpenFOAM/elbow
The 0 directory is the starting time drectory
has a file with the name of fields
pressure and velocity in this case
icoFoam runs simulation
switch to geometry mode.
STEP files preferred?
Create new entity
select surfaces that you want special
go into mesh mode
msh -> create mesh
Hypothesis sets paramters
Warning triangle right click compute mesh
group on geometry
select wall from before
right click and export unv file
ideasUNVToFoam convertst this to an openfoam file
A summary of the video
Get the SDK from opencv.org
Make new project with regular settings
new > import module
select java folder in sdk folder
got an erro
had to install android-sdk by clickign isntall missing platforms
copy all stuff from native > libs into a JNILibs folder by dragging and dropping
Changed the SDK version to after 21 to remove camera2 error
I was having an NDK error
Go to tools > SDK manager and download cmake lldb and ndk
still have errors.
Have to go into files as far as I can tell. This gradle isn’t around
I’m watching these lectures
I am skeptical that this is useful, but it does seem interesting. Also, since their intent is for practical use, it won’t be so high falutin’
Lec 1. Sensor fusion and cross correlating sensors seems to be the idea. Tracking multiple objects. CoSheafs are something? More meat to come
Lec2. edges and faces are sources to be checked for consistency
Flag complexes or clique complex – every set of edges that could have a face has a face
star – all the higher dimensional simplices that contain that object
alexandrov topology – open sets are unions of stars
Nerve – open cover of X. for every set U in cover is vertex. for every intersection that is nonempy, there is a simplex. Leray Theorem
Lec3. Sheaves. you can associate a diagram of inclusion with your simplices. if every simplex has some space associated with it, then you can put functions on these inclusions. Then
I’ve been playing around with Coq and Agda and Idris, doing the exercises in the Software Foundations book. These have similar flavor, using the Curry-Howard isomorphism to use the type system as a way of proving stuff. It may not be an entire coincidence that the systems put in place to tell when you have a float int smash can be extended to full proving systems. The property of never having a float int collision is a proposition that requires proof. And somehow the compiler systematically guarantees it when type checking, without exhaustively running the program.
I came across The Little Prover, which talks about ACL and Dracula, theorem provers in the tradition of Lisp. There is not obviously types involved. This feels like an alternative tradition. More ad hoc?
There is another approach. More automated and not type theory based. They limit themselves to specialized domains. SAT solvers tell whether there exists a set of vairable values that can make
SAT is how you
My impression is that surprisingly often you are better off mapping your problem to the SAT form and then handing it off to really good solvers.
Check out this sudoku solver.
I brew installed minisat (it’s not clear to me if this is a top of the line solver. The competition page pegs it as pretty old, which isn’t necessarily bad) and pip installed satispy.
I’ve heard that Z3 can be used in capture the flag competitions and cracking stuff
Z3 has a python interface.
This has an interesting
Liquid Types? I’ve heard that mentioned before. Some kind of merging of the type theory tradition and SMT. I wonder if guys in the know would not emphasize such a dichotomy.
I downloaded docker and set it up using their script.
fenicsproject notebook testbook
creates a notebook
fenicsproject start testbook.
Starts a jupyter server.
You need to use python 2. Fenics is not installed for python 3 as far as I can tell.
I took the first example out of the tutorial book
in order to see the plots.
I installed solidpython which is a pythony version of openscad.
So you can output a scad file, but then you need to run openscad to convert it further.
brew install Caskroom/cask/openscad
puts it into an app folder and not in the path of the terminal
import os os.system('/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -o test.stl test.scad')
pip install numpy-stl
makes an interactive plot. nice.
gmsh is necessary. Perhaps a better tool chain would just use gmsh and ignore the scad stuff.
you can take a mesh from gmsh
first click add points. add them in in by pressing e.
the add plane surface.
add physical group to start labelling boundaries.
click 2d under mesh.
refine it a couple times maybe then save the .msh
dolfin-convert untitled.msh test.xml
This is an answer as to how to grab these xml files
So here’s a start
This is not the cleanest workflow.
I think we’ll keep working on it, so I’ll post more when it isn’t a pile of Hackathon garbage.
Here are some scattered, totally worthless to anyone else notes as I started exploring the documentation of Matter.js:
Engine.update updates by dt
Bodies – factory methods for creating new bodies
Bounds – Axis aligned bounding box = min and max x and y values
Body. whatever lets you set almost anything about a body.
set to static can be useful
bodies hold velocity prev velocity other things. I bet you mostly should not update these values manually.
Common – useful random crap. Random picks random values. chaining seems useful? clone. topological sort. sign function.
Constraint – fix distance between two points. No rotation contraints?
SAT – seperating axis theorem – convex shapes –
Engine – clear resets
broad phase collision detection?
Downloaded Webpack ISE, the free Xilinx guy that works with
Tried to install usb drivers. But it failed. I saw a board that said it should work if libusb is installed. We’ll see.
It wasn’t readily apparent to me how to run the thing. The Mojo site helped
You need to source a file.
You have to get a license from the license manager. It did not automatically navigate my browser. Select webpack license and load it in the license manager. It will be emailed to you.
A Series of errors upon trying to plan pins:
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/_pace_old: error while loading shared libraries: libXm.so.3: cannot open shared object file: No such file or directory
sudo apt-get install libmotif3
/opt/Xilinx/14.7/ISE_DS/ISE//lib/lin64/libstdc++.so.6: version `GLIBCXX_3.4.15′ not found (required by /usr/lib/firefox/libxul.so)
sudo apt-get install libstdc++5
Wind/U Error (193): X-Resource: DefaultGUIFontSpec (-*-helvetica-medium-r-normal-*-14-*) does not fully specify a font set for this locale
Wind/U Error (248): Failed to connect to the registry on server philip-desktop
Warning!!: XKEYSYMDB environment variable is set to a wrong location
sudo apt-get install xfonts-75dpi xfonts-100dpi
Hey! It works after a good 30 seconds. Oh my good this looks like garbage. What is going on here? Some weirdo windows port?
Ok. I have a Spartan 6 AX309 board now and a xilinx platform usb cable. Let’s see if we can program it. I asked the seller for the link to their files. It’s got datasheets and example code. That’s nice.
The programming software is apparently called impact. That’s helpful. SARCASM
Ok. I left this on my desk for a week and forgot what I did. As I recall the installation process did not appear to be working.
Ok. So I think it might be working.
I had concern about getting some kind of ESN error, but I think I was doing things in the wrong order.
First click boundary scan.
Then find Initialize chain.
Then my chip shows up. Then I added a .bit file configuration.
WHOO. The LED BLINK TEST WORKS.
Why do I do this to myself? My Altera toolchain was working just fine. Oh well. Onwards and upwards.