freefem_src


  1. array2d, a FreeFem++ code which demonstrates how 2D arrays can be defined and manipulated.
  2. backward_euler, a FreeFem++ code which uses the (implicit) backward Euler method to solve a time-dependent boundary value problem (BVP).
  3. backward_step, a FreeFem++ code which solves the Navier Stokes equations, for an increasing sequence of Reynolds numbers, in a backward step region.
  4. bamg_test, a FreeFem++ code which displays 2D meshes created by BAMG.
  5. 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.
  6. build_layers, a FreeFem++ code which shows how a 3D mesh can be constructed using repeated layers of a 2D mesh.
  7. 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.
  8. 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.
  9. channel_navier_stokes, a FreeFem++ code which sets up the time dependent Navier Stokes equations for flow in a channel with a circular obstruction.
  10. channel_stokes_steady, a FreeFem++ code which solves the time-independent Stokes equations for channel flow.
  11. chemotaxis, a FreeFem++ code which models the time-dependent growth of cells which secrete a chemoattractant, causing patterns to form.
  12. 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.
  13. commandline_test, a FreeFem++ code which shows how a script can accept commandline input.
  14. 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.
  15. convection, a FreeFem++ code which simulates the convection of a substance carried by a known velocity field through a winding closed channel.
  16. 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.
  17. 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.
  18. 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.
  19. driven_cavity_navier_stokes, a FreeFem++ code which solves the Navier-Stokes equations for the driven cavity problem.
  20. 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.
  21. driven_cavity_stokes, a FreeFem++ code which solves the Stokes equations for the driven cavity problem.
  22. elastic_bar, a FreeFem++ code which models the deformation of an elastic bar under stress.
  23. 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.
  24. euler, a FreeFem++ code which uses the Forward Euler method to solve a time-dependent boundary value problem (BVP).
  25. 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.
  26. exit_test, a FreeFem++ code which demonstrates how the exit() statement can be used to terminate a script early.
  27. 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.
  28. gnuplot_contour, a FreeFem++ code which writes data to files that GNUPLOT can use to make contour plots.
  29. 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.
  30. heat, a FreeFem++ code which sets up the time-dependent heat equation in 2D with a mixture of Dirichlet and Neumann flux boundary conditions.
  31. 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.
  32. hello, a FreeFem++ code which simply verifies that the FreeFem++ program is available.
  33. io_test, a FreeFem++ code which shows how a FreeFem++ code can move information from or to a file.
  34. 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.
  35. lapack_test, a FreeFem++ code which uses an interface to the lapack() library to carry out certain linear algebra operations.
  36. laplace_circle, a FreeFem++ code which solves the steady Laplace equation in a circle.
  37. 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.
  38. 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.
  39. lotka_volterra, a FreeFem++ code which models the time evolution of the distribution of predator and prey species over a 2D region.
  40. 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.
  41. math_test, a FreeFem++ code which demonstrates each of FreeFem++'s built-in math functions;
  42. membrane, a FreeFem++ code which models the deflection of an elastic membrane inside an ellipse.
  43. membrane_error, a FreeFem++ code which solves the Laplace equation in an ellipse twice, and does a convergence analysis on the error.
  44. mesh_adaptive, a FreeFem++ code which shows a mesh can gradually be adapted according to some error indicator.
  45. mesh_construction, a FreeFem++ code which shows how to construct a mesh as a sequence of straight lines, which then can automatically be meshed.
  46. 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.
  47. mesh_read, a FreeFem++ code which reads a file containing mesh information defined by another program.
  48. 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.
  49. 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.
  50. midpoint, a FreeFem++ code which uses the (implicit) midpoint method to solve a time-dependent boundary value problem (BVP).
  51. 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.
  52. 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.
  53. 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.
  54. 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.
  55. mitchell_04, a FreeFem++ code which sets up and solves Mitchell's test problem #4, "the peak".
  56. mitchell_05, a FreeFem++ code which sets up and solves Mitchell's test problem #5, "the battery".
  57. mitchell_06, a FreeFem++ code which sets up and solves Mitchell's test problem #6, "the boundary layer".
  58. mitchell_07, a FreeFem++ code which sets up and solves Mitchell's test problem #7, "the boundary line singularity".
  59. mitchell_08, a FreeFem++ code which sets up and solves Mitchell's test problem #8, "oscillatory".
  60. mitchell_09, a FreeFem++ code which sets up and solves Mitchell's test problem #9, "the wave front".
  61. mitchell_10, a FreeFem++ code which sets up and solves Mitchell's test problem #10, "the interior line singularity".
  62. mitchell_11, a FreeFem++ code which sets up and solves Mitchell's test problem #11, "the intersecting interfaces".
  63. mitchell_12, a FreeFem++ code which sets up and solves Mitchell's test problem #12, "multiple difficulties".
  64. molding a FreeFem++ code which models the process of filling a hollow mold with a liquid that obeys the Navier-Stokes equations.
  65. mshmet a FreeFem++ code which uses Morice's mshmet() plugin to create an isotropic adaptive mesh in a 3D region, displayed using medit().
  66. plot_test, a FreeFem++ code which investigates the plot() command;
  67. poiseuille, a FreeFem++ code which solves the Navier Stokes equations describing Poiseuille flow in a pipe.
  68. 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;
  69. poisson_2d, a FreeFem++ code which solves the Poisson equation in a square region;
  70. 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;
  71. 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.
  72. polygonal_mesh, a FreeFem++ code which demonstrates how to create a region by specifying polygonal borders and then mesh it by calling buildmesh().
  73. random_test, a FreeFem++ code which demonstrates how the various random number generators can be used.
  74. read_mesh a FreeFem++ code which reads mesh information created by bamg, gmsh, medit, mesh2d, and savemesh.
  75. 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.
  76. schroedinger, a FreeFem++ script which sets up and solves the Schroedinger equation.
  77. schwarz_overlap, a FreeFem++ script which demonstrates how the Schwarz method can be implemented. Here, a domain is replaced by two overlapping subdomains.
  78. shock a FreeFem++ code which solves the Euler equations to model supersonic perfect gas flow around an elliptical obstacle.
  79. square_split, a FreeFem++ code which shows how a mesh can be read from an "msh" file saved by a previously run FreeFem++ script.
  80. square_test, a FreeFem++ code which tests the square() function for meshing a square region.
  81. stiffness_matrix, a FreeFem++ code which investigates the computation of the finite element method stiffness matrix.
  82. 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'.
  83. tester, a BASH code which runs the test programs.
  84. thermal_convection, a FreeFem++ code which simulates the convection and diffusion of heat carried by a fluid.
  85. 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.
  86. traffic, a FreeFem++ code which sets up a traffic flow model with diffusion and lane branching. Two roads cross at a moderate angle.
  87. trapezoidal, a FreeFem++ code which uses the (implicit) trapezoidal method to solve a time-dependent boundary value problem (BVP).
  88. two_fluid, a FreeFem++ code which simulates the incompressible flow of two liquids of different densities.
  89. vector_test, a FreeFem++ code which demonstrates how vectors can be defined and manipulated.


Last revised on 03 October 2024.