freefem_src
-
array2d,
a FreeFem++ code which
demonstrates how 2D arrays can be defined and manipulated.
-
backward_euler,
a FreeFem++ code which
uses the (implicit) backward Euler method to solve a time-dependent
boundary value problem (BVP).
-
backward_step,
a FreeFem++ code which
solves the Navier Stokes equations, for an increasing sequence of
Reynolds numbers, in a backward step region.
-
bamg_test,
a FreeFem++ code which
displays 2D meshes created by BAMG.
-
boundary_node_list,
a FreeFem++ code which
defines a 2D mesh, and then shows how to determine the number of
boundary elements (that is, sides of triangles), and how to list the
indices of the pairs of nodes that form the boundary.
-
build_layers,
a FreeFem++ code which
shows how a 3D mesh can be constructed using repeated layers
of a 2D mesh.
-
capacitor_2d,
a FreeFem++ code which
simulates the behavior of a 2D capacitor, and writes the resulting
data to files, using the ffmatlib() interface, for subsequent
graphics processing by MATLAB or Octave.
-
capacitor_3d,
a FreeFem++ code which
simulates the behavior of a 3D capacitor, and writes the resulting
data to files, using the ffmatlib() interface, for subsequent
graphics processing by MATLAB or Octave.
-
channel_navier_stokes,
a FreeFem++ code which
sets up the time dependent Navier Stokes equations for flow in
a channel with a circular obstruction.
-
channel_stokes_steady,
a FreeFem++ code which
solves the time-independent Stokes equations for channel flow.
-
chemotaxis,
a FreeFem++ code which
models the time-dependent growth of cells which secrete a
chemoattractant, causing patterns to form.
-
cloud,
a FreeFem++ code which
starts with a black and white drawing of a cloud, uses MATLAB to extract
the boundary, reads the boundary into FreeFem++ and solves a Poisson
problem over the region.
-
commandline_test,
a FreeFem++ code which
shows how a script can accept commandline input.
-
convect,
a FreeFem++ code which
shows how FreeFem++'s convect() function can be used
to simulate the convection of a quantity by a velocity field.
-
convection,
a FreeFem++ code which
simulates the convection of a substance carried by a known
velocity field through a winding closed channel.
-
convective_rolls,
a FreeFem++ code which
calculates the convective rolling behavior of a fluid being heated
from below, and writes the resulting data to files, using the
ffmatlib() interface, for subsequent graphics processing by MATLAB
or Octave.
-
convective_rolls_movie,
a FreeFem++ code which
calculates the convective rolling behavior of a fluid being heated
from below, saves each time step as a snapshot, and writes the
resulting data to files, using the ffmatlib() interface, for
subsequent animation by MATLAB or Octave.
-
convergence,
a FreeFem++ code which
solves a simple boundary value problem (BVP) on a square,
compares the approximate and exact solutions as the mesh
size is decreased, and computes the convergence rates.
-
driven_cavity_navier_stokes,
a FreeFem++ code which
solves the Navier-Stokes equations for the driven cavity problem.
-
driven_cavity_navier_stokes_pod,
a FreeFem++ code which
applies Proper Orthogonal Decomposition (POD) to flow in the
driven cavity, governed by the Navier-Stokes equations.
-
driven_cavity_stokes,
a FreeFem++ code which
solves the Stokes equations for the driven cavity problem.
-
elastic_bar,
a FreeFem++ code which
models the deformation of an elastic bar under stress.
-
error_norms,
a FreeFem++ code which
computes L2 and H1 error norms of a finite element approximation,
and also shows how to project the exact solution onto the finite
element space and plot it.
-
euler,
a FreeFem++ code which
uses the Forward Euler method to solve a time-dependent
boundary value problem (BVP).
-
exec_test,
a FreeFem++ code which
demonstrates how the exec() statement can be used to issue
a system command, in this case, a call to the gnuplot()
graphics program.
-
exit_test,
a FreeFem++ code which
demonstrates how the exit() statement can be used to terminate a
script early.
-
fokker_planck,
a FreeFem++ code which
solves the Fokker-Planck equation for a
Probability Density Function (PDF) describing a system
of two molecular species X and Y governed by five reactions with
stochastic behavior.
-
gnuplot_contour,
a FreeFem++ code which
writes data to files that GNUPLOT can use to make contour plots.
-
gnuplot_surface,
a FreeFem++ code which
solves the steady Laplace equation over a disk, and then writes the
mesh and solution to a file so that GNUPLOT can create a surface plot.
-
heat,
a FreeFem++ code which
sets up the time-dependent heat equation in 2D with a mixture of
Dirichlet and Neumann flux boundary conditions.
-
heat_transfer,
a FreeFem++ code which
calculates the temperature distribution in a heated sheet metal
disk employing heat transfer and one fixed border temperature,
and writes the resulting data to files, using the
ffmatlib() interface, for subsequent graphics processing by MATLAB
or Octave.
-
hello,
a FreeFem++ code which
simply verifies that the FreeFem++ program is available.
-
io_test,
a FreeFem++ code which
shows how a FreeFem++ code can move information from or to a file.
-
karman_vortex,
a FreeFem++ code which
calculates the heat transfer occurring in a von Karman vortex street,
and writes the resulting data to files, using the
ffmatlib() interface, for subsequent graphics processing by MATLAB
or Octave.
-
lapack_test,
a FreeFem++ code which
uses an interface to the lapack() library to carry out certain
linear algebra operations.
-
laplace_circle,
a FreeFem++ code which
solves the steady Laplace equation in a circle.
-
laplace_circle_rcc,
a FreeFem++ code which
solves the steady Laplace equation in a circle,
using serial or steady, local or batch processing
on the FSU Research Computing Center (RCC) computer cluster.
-
laplace_periodic,
a FreeFem++ code which
solves the Laplace equation in the square with periodic boundary
conditions, and writes the resulting data to files, using the
ffmatlib() interface, for subsequent graphics processing by MATLAB
or Octave.
-
lotka_volterra,
a FreeFem++ code which
models the time evolution of the distribution of predator and
prey species over a 2D region.
-
mass_matrix,
a FreeFem++ code which
investigates the computation of the finite element mass matrix,
and discovers that Dirichlet boundary conditions are handled
in a surprising way.
-
math_test,
a FreeFem++ code which
demonstrates each of FreeFem++'s built-in math functions;
-
membrane,
a FreeFem++ code which
models the deflection of an elastic membrane inside an ellipse.
-
membrane_error,
a FreeFem++ code which
solves the Laplace equation in an ellipse twice, and does a convergence
analysis on the error.
-
mesh_adaptive,
a FreeFem++ code which
shows a mesh can gradually be adapted according to some error indicator.
-
mesh_construction,
a FreeFem++ code which
shows how to construct a mesh as a sequence of straight lines,
which then can automatically be meshed.
-
mesh_points,
a FreeFem++ code which
shows how an irregularly shaped region can be defined by reading from
a file the coordinates of a sequence of boundary points that outline
the region.
-
mesh_read,
a FreeFem++ code which
reads a file containing mesh information defined by
another program.
-
mesh_write,
a FreeFem++ code which
generates a mesh
on a circle, and saves the mesh to a file. This example is meant to
illustrate the structure of the mesh file format that is used
by FreeFem++, and to create a mesh file that can be read
by another example script.
-
microwave,
a FreeFem++ code which
solves the complex Helmholtz equation governing the propagation
of microwave radiation, followed by the determination of the
material heating caused by the intensity of the radiation.
-
midpoint,
a FreeFem++ code which
uses the (implicit) midpoint method to solve a time-dependent
boundary value problem (BVP).
-
migration,
a FreeFem++ code which
models the migration and proliferation of biological cells.
The region is a 3x2 rectangle with periodic boundary conditions
on the left and right.
-
mitchell_01,
a FreeFem++ code which
sets up and solves Mitchell's test problem #1, "the analytic solution",
a Poisson equation on the [0,+1]x[0,+1] square, with zero Dirichlet
boundary conditions.
-
mitchell_02,
a FreeFem++ code which
sets up and solves Mitchell's test problem #2, "the reentrant corner",
testing five different angles for the corner.
-
mitchell_03,
a FreeFem++ code which
sets up and solves Mitchell's test problem #3, "linear elasticity",
two coupled equations with a mixed derivative in the coupling term,
defined on the [-1,+1]x[-1,+1] square, with a slit from (0,0) to (1,0),
using parameter values nu = 0.3, E = 1, lambda, and Q.
-
mitchell_04,
a FreeFem++ code which
sets up and solves Mitchell's test problem #4, "the peak".
-
mitchell_05,
a FreeFem++ code which
sets up and solves Mitchell's test problem #5, "the battery".
-
mitchell_06,
a FreeFem++ code which
sets up and solves Mitchell's test problem #6, "the boundary layer".
-
mitchell_07,
a FreeFem++ code which
sets up and solves Mitchell's test problem #7,
"the boundary line singularity".
-
mitchell_08,
a FreeFem++ code which
sets up and solves Mitchell's test problem #8,
"oscillatory".
-
mitchell_09,
a FreeFem++ code which
sets up and solves Mitchell's test problem #9,
"the wave front".
-
mitchell_10,
a FreeFem++ code which
sets up and solves Mitchell's test problem #10,
"the interior line singularity".
-
mitchell_11,
a FreeFem++ code which
sets up and solves Mitchell's test problem #11,
"the intersecting interfaces".
-
mitchell_12,
a FreeFem++ code which
sets up and solves Mitchell's test problem #12,
"multiple difficulties".
-
molding
a FreeFem++ code which
models the process of filling a hollow mold with a liquid
that obeys the Navier-Stokes equations.
-
mshmet
a FreeFem++ code which
uses Morice's mshmet() plugin to create an isotropic adaptive mesh
in a 3D region, displayed using medit().
-
plot_test,
a FreeFem++ code which
investigates the plot() command;
-
poiseuille,
a FreeFem++ code which
solves the Navier Stokes equations describing Poiseuille flow
in a pipe.
-
poisson_1d,
a FreeFem++ code which
solves the Poisson equation in 1D. FreeFem++ doesn't expect to deal
with 1D problems, so we have to make a 2D problem
that is 1 element wide;
-
poisson_2d,
a FreeFem++ code which
solves the Poisson equation in a square region;
-
poisson_adaptive,
a FreeFem++ code which
repeatedly solves the Poisson equation in the L-shaped region,
adaptively refining the mesh based on an error estimator;
-
poisson_ell,
a FreeFem++ code which
solves the Poisson equation in the L-shaped region, and writes
the resulting data to files, using the ffmatlib() interface, for
subsequent graphics processing by MATLAB or Octave.
-
polygonal_mesh,
a FreeFem++ code which
demonstrates how to create a region by specifying polygonal
borders and then mesh it by calling buildmesh().
-
random_test,
a FreeFem++ code which
demonstrates how the various random number generators can be used.
-
read_mesh
a FreeFem++ code which
reads mesh information created by bamg, gmsh, medit,
mesh2d, and savemesh.
-
region,
a FreeFem++ code which
sets up a mesh in an "interesting" region, and writes the resulting
data to files, using the ffmatlib() interface, for subsequent
graphics processing by MATLAB or Octave.
-
schroedinger,
a FreeFem++ script which
sets up and solves the Schroedinger equation.
-
schwarz_overlap,
a FreeFem++ script which
demonstrates how the Schwarz method can be implemented.
Here, a domain is replaced by two overlapping
subdomains.
-
shock
a FreeFem++ code which
solves the Euler equations to model supersonic perfect gas flow
around an elliptical obstacle.
-
square_split,
a FreeFem++ code which
shows how a mesh can be read from an "msh" file saved by
a previously run FreeFem++ script.
-
square_test,
a FreeFem++ code which
tests the square() function for meshing a square region.
-
stiffness_matrix,
a FreeFem++ code which
investigates the computation of the finite element method
stiffness matrix.
-
svd_test,
a FreeFem++ code which
demonstrates how FreeFem++ can call some LAPACK routines using
a specially written interface. In this case, DGESVD is called,
to compute the singular value decomposition A = U*S*V'.
-
tester,
a BASH code which runs the test programs.
-
thermal_convection,
a FreeFem++ code which
simulates the convection and diffusion of heat carried by a fluid.
-
thermal_design,
a FreeFem++ code which
models a thermal design problem, in which an insulating wall is
made up of two materials with different properties.
-
traffic,
a FreeFem++ code which
sets up a traffic flow model with diffusion and lane branching.
Two roads cross at a moderate angle.
-
trapezoidal,
a FreeFem++ code which
uses the (implicit) trapezoidal method to solve a time-dependent
boundary value problem (BVP).
-
two_fluid,
a FreeFem++ code which
simulates the incompressible flow of two liquids of different
densities.
-
vector_test,
a FreeFem++ code which
demonstrates how vectors can be defined and manipulated.
Last revised on 03 October 2024.