fino: FINite elements Optimization


Fino: a free finite-element solver 

Fino is a free and open source tool to solve partial differential equations using the finite element method. It is particularly designed to handle complex material properties, parametric and optimization runs while solving linear elastic problems, natural frequency analysis and heat conduction but arbitrary equations may be included. The domain over which the PDE is solved (which can be either one, two or three-dimensional) should be a grid generated by Gmsh. The material properties (i.e. the coefficients of the PDE) may involve arbitrary dependence of space associated to volumetric physical entities defined in the mesh. Dirichlet, Neumann and/or Robin boundary conditions can be given as algebraic functions of space and are also associated to surface physical entities.

Fino follows, amongst others, the UNIX philosophy. Fino is a back-end aimed at advanced users. For a web-based fronted with Fino running on the cloud, see CAEplex

CAEplex: a web-based interface for finite-element analysis on the cloud

1 Quick start

It is really worth any amount of time and effort to get away from Windows if you are doing computational science.

https://lists.mcs.anl.gov/pipermail/petsc-users/2015-July/026388.html

Open a terminal in a GNU/Linux box (may be a VirtualBox box) and install the following tools:

sudo apt-get install m4 make autoconf automake gcc g++ git findutils

and the following libraries

sudo apt-get install libgsl-dev libsundials-serial-dev libreadline-dev petsc-dev slepc-dev

If your distribution does not have a bundled version of PETSc or SLEPc, then you might need to compile them yourself (SLEPc is optional for Fino). Ask for help in the mailing list.

Clone the Fino repository, bootstrap (might take a while as it has to clone and bootstrap wasora first), configure, compile and check:

git clone https://bitbucket.org/seamplex/fino/
cd fino
./autogen.sh
./configure
make
make check

If these instructions are non-sense to you, go directly to the mailing list.

2 Features

Fino uses the a finite-element formulation to solve

  • the displacement-based linear static elastic problem, or
  • the natural frequencies modal linear static elastic problem, or
  • the static heat conduction equation, or
  • any arbitrary linear partial differential equation provided the user enters the elemental stiffness matrix.

Fino uses a main input file (see below for examples), that in turn instructs Fino to read one or more mesh files in Gmsh format. Fino works on top of the wasora framework so it shares its design basis and inherits all of its features:

Output is 100% defined in the input file. If no explicit output instruction is provided, Fino remains silent (as required by the UNIX rule of silence). Besides terminal and plain-text files, post-processing files in VTK o MSH formats can be generated.

3 Examples

See the directory examples for further cases.

3.1 Tensile test

Let us consider the example input file examples/tensile-test.fin:

We can run it with Fino like this:

We can process the VTK output file with the free tool ParaView:

Tensile test results.
Tensile test results.

3.2 Cantilever beam with first & second order elements

Cantilever beam displacement for different grids and element order.
Cantilever beam displacement for different grids and element order.

3.3 Thermal conduction in a piston engine

Problem taken from Simscale’s thermal tutorial:

Fino results.
Fino results.
Simscale (CalculiX) results.
Simscale (CalculiX) results.

3.4 Conic valve

Can your solver constrain your model faces to algebraically-defined surfaces such as cones? Ours can (and it is open source):

Conic valve 

See the original tweet at https://twitter.com/seamplex/status/789440535329181696

3.5 Thermal expansion of finite cylinders

Veeder Benchmark problem
Veeder Benchmark problem

See https://www.seamplex.com/docs/SP-FI-17-BM-5460-A.pdf.

4 Licensing

Fino is distributed under the terms of the GNU General Public License version 3 or (at your option) any later version.

5 Further information

Home page: https://www.seamplex.com/fino
Repository: https://bitbucket.org/seamplex/fino
Mailing list and bug reports: wasora@seamplex.com (you need to subscribe first at wasora+subscribe@seamplex.com)
Web interface for mailing list: https://www.seamplex.com/lists.html
Follow us: Twitter YouTube LinkedIn Bitbucket


fino is copyright (C) 2014-2017 Jeremy Theler
fino is licensed under GNU GPL version 3 or (at your option) any later version.
fino is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
See the file COPYING for copying conditions.