There is some pretty amazing open source software available for multi-physics FEM.

This page describes the open source software pulled together to perform FEM (finite element modeling). Originally the software used was QuickField, student version. The limitation on that software is that it is 2D asymmetric or planar with a 250 node limit in the student version. It does however support thermal, electro-statics and magnetics and is quick and good for some small problems.

The software described on this page supports 3D geometry with no node limits other than machine memory and it does support multi-physics. The problems solved can be either steady state or transient. For full end-to-end simulation several packages are required, all of which are supported Open Source. The software comes with documentation and there are active forums to consult to get questions answered. Best of all the software is free.

The packages are:
Overview of process:

An overview of the process is that a CAD program, such as TurboCAD Pro, is used to generate a *.step file for each body in the assembly to be modeled. Each 3D model is in the correct location and orientation such that if all *.step files are combined the interface surfaces between bodies seamlessly match. This is a requirement for mesh generation.

Next, Salome is used to import and assign names to each body. There is a web page that describes the process of creating a multi-body mesh described at ElmerMultiBody. Once the combined mesh is created it is exported as a *.UNV file.

The next step is the program ElmerGrid is used to convert the *.UNV file to a mesh file that can be read by ElmerGui. ElmerGui is next used to read in the mesh and create a project file. This is where the type of problem is defined, material properties set and boundary conditions set. Once the project is totally defined the project file can be saved and execution performed through ElmerGui . If ElmerGui is used for post-processing the results can be viewed by launching the post-processor from within the GUI.

If ParaView is used as the post-processor the Elmer project needs to be setup to generate the output Results file for Paraview. The ParaView can be used to view and analyze the results.