From episode "Mortynight Run"
Look at this. You beat cancer, and then you went back to work at the carpet store? Booooh.
Basically mean that parallel evolution happened. Some cool ones:
- homeothermy: mammals and birds
- animal flight: bats, birds and insects
- multicellularity: evolved a bunch of times
For Ciro Santilli's unimpressive drug experiences see: Section "Ciro Santilli's drug experiences".
Started in 1987 and written in Pascal, by the French from Pierre and Marie Curie University, the French are really strong in numerical analysis.
Ciro wasn't expecting it to be as old. Ported to C++ in 1992.
The fact that French wrote it can be seen in the documentation, for example doc.freefem.org/tutorials/index.html uses file extension
mycode.edp
instead of mycode.pde
where dep
stands for "Équation aux dérivées partielles".Besides the painful build, using FreeFem is relatively simple, as can be seen from the examples on the website.
They do use a domain-specific language on the examples, which appears to be the main/only interface, which is a bad thing, Ciro would rather have a Python API as the "main API", which is more the approach taken by the FEniCS Project, but so be it. This domain-specific language business means that you always stumble upon basic stuff you want to do but can't, and then you have to think about how to share data between the simulation and the plotting. The plotting notably is super complex and they can't implement all of what people want, upstream examples often offload that to gnuplot. This is potentially a big advantage of FEniCS Project.
It nice though that they do have some graphics out of the box, as that allows to quickly debug common problems.
Uses variational formulation of a partial differential equation, which is not immediately obvious to beginners? The introduction doc.freefem.org/tutorials/poisson.html gives an ultra quick example, but your are mostly on your own with that.
On Ubuntu 20.04, the
freefem
is a bit out-of-date (3.5.8, there isn't even a tag for that in the GitHub repo, and refs/tags/release_3_10 is from 2010!) and fails to run the examples from the website. It did work with the example package though, but the output does not have color, which makes me sad :-)sudo apt install freefem freefem-examples
freefem /usr/share/doc/freefem-examples/heat.pde
So let's just compile the latest v4.6 it from source, on Ubuntu 20.04:
sudo apt build-dep freefem
git clone https://github.com/FreeFem/FreeFem-sources
cd FreeFem-sources
# Post v4.6 with some fixes.
git checkout 3df0e2370d9752801ac744b11307b14e16743a44
# Won't apply automatically due to tab hell.
# https://superuser.com/questions/607410/how-to-copy-paste-tab-characters-via-the-clipboard-into-terminal-session-on-gnom
git apply <<'EOS'
diff --git a/3rdparty/ff-petsc/Makefile b/3rdparty/ff-petsc/Makefile
index dc62ab06..13cd3253 100644
--- a/3rdparty/ff-petsc/Makefile
+++ b/3rdparty/ff-petsc/Makefile
@@ -204,7 +204,7 @@ $(SRCDIR)/tag-make-real:$(SRCDIR)/tag-conf-real
$(SRCDIR)/tag-install-real :$(SRCDIR)/tag-make-real
cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr install
-test -x "`type -p otool`" && make changer
- cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr check
+ #cd $(SRCDIR) && $(MAKE) PETSC_DIR=$(PETSC_DIR) PETSC_ARCH=fr check
test -e $(DIR_INSTALL_REAL)/include/petsc.h
test -e $(DIR_INSTALL_REAL)/lib/petsc/conf/petscvariables
touch $@
@@ -293,7 +293,6 @@ $(SRCDIR)/tag-tar:$(PACKAGE)
-tar xzf $(PACKAGE)
patch -p1 < petsc-hpddm.patch
ifeq ($(WIN32DLLTARGET),)
- patch -p1 < petsc-metis.patch
endif
touch $@
$(PACKAGE):
EOS
autoreconf -i
./configure --enable-download --enable-optim --prefix="$(pwd)/../FreeFem-install"
./3rdparty/getall -a
cd 3rdparty/ff-petsc
make petsc-slepc
cd -
./reconfigure
make -j`nproc`
make install
cd ../FreeFem-install
PATH="${PATH}:$(pwd)/bin" ./bin/FreeFem++ ../FreeFem-sources/examples/tutorial/
Ciro's initial build experience was a bit painful, possibly because it was done on a relatively new Ubuntu 20.04 as of June 2020, but in the end it worked: github.com/FreeFem/FreeFem-sources/issues/141
The main/only dependency appears to be PETSc which is used by default, which is a good sign, as that library appears to automatically parallelize a single input to several backends (single CPU, MPI, GPU) so you know things will scale up as you reach simulations.
The problem is that it compiling such a complex dependency opens up much more room for hard to solve compilation errors, and takes a lot more time.
The general and ideal user acquisition is of course organic Googling:
- user does not understand his teacher's explanation of a subject
- user Googles into rare specific subject
- looks around, then login/create account with OAuth to leaves a comment or upvote
- notice that you can fork anything
- mind = KABOOM
However, before that point, it is very likely that Ciro will have to physically do some very hard and specific user acquisition work at some University. Maybe there is a more virtual way of achieving this.
This work will involve going through some open set of university lecture notes, and creating a superior version of them on OurBigBook.com, and somehow getting students to notice it and use it as a superior alternative to their crappy lecture notes.
Another very promising route is publishing the answers to old examination questions on the website. It is likely that we will be able to overcome any copyright issues by uploading only the answers to numbered questions. There is a minor risk that these would be considered derivative works of the copyrighted questions. But universities would have to be very anal to enforce a DMCA for that!!!
Getting in contact with students is an epic challenge, as an incredibly deep chasm separates us:
- it is basically impossible to try and approach teachers: how to convince teachers to use CC BY-SA
- and on the other hand, how will you get university students to trust you are not a pedophile and that you actually want to help them?The missing aspect is how to join their main "class communication group", e.g. a WhatsApp or Discord chat they have. That would be the perfect entry point to communicate with the end users. But that entry point is also generally closed exclusively for students, and sometimes lecturers, and will not accept anyone external.Perhaps Ciro would be able to do something with one of the two Universities he attended in the past: École Polytechnique or University of São Paulo. But there was no clear channel in those institutions for that. There is either an "infinitely noisy Facebook with everyone that bothered" or silence, deathly silence and isolation of no contact. The key hard part is getting a per-course granularity chat. Discord Student Hubs are a fantastic initiative in that area. Shame that Discord is an unusable mess with zero ways to select which notifications you care about: Section "Discord email notifications"!One approach method that shows some promise is to follow the Student societies, which often host open events of interest outside of work hours.
Walking with advertisement t-shirts mentioning specific course names in some university location is something Ciro seriously considers, that's how desperate things are. Watch out: docs.ourbigbook.com/#public-relations for T-shirt news!
This is a really good project. So fun to play around with. Low level IO part only like drawing to screen and handling keyboard inputs.
Ciro Santilli has:
- a few answers on Stack Overflow: stackoverflow.com/search?tab=votes&q=user%3a895245%20%5bsdl%5d
- a small cheatsheet on: github.com/cirosantilli/cpp-cheat/tree/09cb7c9fc1ee4a8bee421f12d0596b81cfd836bd/sdl
Used to solve partial differential equation.
TODO understand, give intuition, justification of bounds and JavaScript demo.
77K. Low enough for "high temperature superconductors" such as yttrium barium copper oxide, but for "low temperature superconductors", you need to go much lower, typically with liquid helium, which is likely much more expensive. TODO by how much?
Multiple boundary conditions for different parts of the boundary.
See form.
Analogous to a linear form, a multilinear form is a Multilinear map where the image is the underlying field of the vector space, e.g. .
Microscope Project (YouTube channel) by Ciro Santilli 35 Updated 2025-01-10 +Created 1970-01-01
As of 2022, this channel is still finding its feet. But it has promise.
Unfortunately it does not show sample preparation, and it does not use controlled cultures, so we are never sure which species are represented.
There are unlisted articles, also show them or only show them.