I am solving a linear stationary finite element model but the software is not solving. Why?
What can I do about this?
A linear finite element model is one in which all of the material properties, loads, boundary conditions, etc... are constant with respect to the solution, and the governing partial differential equations are themselves linear. Solving such models in a stationary sense should simply require solving a single (large) system of linear equations and should always be solvable, but there are cases when the software will fail to find a solution.
If you are unsure if your problem is linear and stationary, look at the Log. The stationary solver is used both for Stationary (time-invariant) and Frequency Domain (time-harmonic) study types. Near the top of the Stationary Solver log, the software will report if a linear or nonlinear solver is being used. Most multiphysics problems are nonlinear. If the model is nonlinear, see: Improving Convergence of Nonlinear Stationary Models
The following are possible reasons why a linear stationary model will fail to solve, along with resolutions:
Insufficient constraints and boundary conditions
The combination of the constraints and boundary conditions must be sufficient to define a unique solution to the problem, in terms of the field variables being solved. For example, in a Solid Mechanics (wherein the software is solving for the displacement field within the solid) applying two opposite and equal Boundary Load conditions on a part is not sufficient to define the displacement. That is: Even if the forces on a part are opposite and equal, this is not sufficient information to say where the part is, so you must add some other condition, such as as Fixed Constraint to constrain displacement.
Undefined materials properties
If some, or all, of the needed materials properties needed by the physics interfaces are not defined, the model will generate an error at runtime. There will also be a red cross over the Materials branch icon. View the Settings window for the Materials branch to get a list of all domains with undefined materials and add a material to those domains. If one particular material is missing one property, that material will also be highlighted with a red cross over that material icon in the Model Builder.
Incorrect materials properties
If the material properties entered are incorrect for the governing equation, the model will generate an error at runtime, usually a Singular Matrix error. For example, in Solid Mechanics, if the Poisson Ratio set to 0.5, then the model will not solve, as this value in incompatible with the theory of linear elasticity. As a second example, when solving for Electric Currents, do not model perfect electrical insulators as materials with zero conductivity, instead, omit the domain from the model and use the Electric Insulation boundary condition.
If you try to enter a variable that is undefined, the automatic syntax highlighting will identify this as you enter it, and it is best practice to resolve this immediately. If you try to solve such a model, there will be an error at runtime that will provide information about the variable name and where it is being called. Review the model setup to resolve these.
Insufficient memory to solve the model
If the model is very large, and if you do not have very much memory in your computer, you may get an error message regarding memory. If so, see: Knowledgebase 1030: Error: "Out of memory". Also, keep in mind that a linear stationary model should solve regardless of how coarse the mesh is (albeit to a low accuracy) so you can always start with as coarse a mesh as possible, and refine the mesh (See also: Knowledgebase 1030: Performing a Mesh Refinement Study
Extremely ill-conditioned problems
Some models are numerically ill-conditioned due to the setup. Numerically ill-conditioned means that the system matrix is nearly singular and that it will be difficult to solve on a finite-precision computer. This can arise as a consequence of extreme variations in the material properties, or high aspect ratio geometry.
For example, in an Electric Currents problem, you may want to consider a system of materials including a good conductor such as copper (with an electric conductivity of ~6e7 S/m) and an insulative material such as glass (which can have electric conductivity of ~1e-14 S/m.) Such a large difference in the materials properties can be challenging. In such cases, see if one material (or the other) can be omitted from the analysis completely. In this case, it would likely be reasonable to treat the insulative material as a perfect insulator, omit it from the analysis, and use the Electric Insulation boundary condition instead of modeling those domains.
The conditions on the geometric aspect ratio are relatively more strict. As a rough rule of thumb, once the aspect ratio between the largest characteristic dimension to the smallest approaches 100:1, you might start to run into issues and should look to alternative ways of posing the problem, especially in a 3D model. An example would be a linear static structural model of an aluminum beverage can. If this was solved using the Solid Mechanics physics interface the thin walls of the container would need to be explicitly modeled, but the wall thickness is much smaller than the overall can dimensions. Such a case would be better to address instead with the Shell physics interface, which is specially formulated for handling thin-walled structural parts. In many physics areas there exist alternative physics formulations specifically meant for solving cases where the geometry has an extreme aspect ratio. These can be used alone, or in combination with other interfaces. See if these can be used instead of explicitly modeling parts with high-aspect ratio geometries.
There are also cases when an extremely poor quality mesh leads to an ill-conditioned problem, This issue often arises in combination with, and as a consequence of, geometries that have extreme aspect ratios. Use a manually defined mesh to avoid elements with extreme aspect ratios and perform a mesh refinement study, as described here: Performing a Mesh Refinement Study
For problems that are ill-conditioned, using a direct solver is often called for. The default solver for most 3D models is an iterative solver, which is more sensitive to ill-conditioned problems. If the default iterative solver is not converging, try switching to a direct solver, as described here: Understanding the Fully Coupled vs. Segregated approach and Direct vs. Linear solvers
Wrong solver being used
Different physics have different default solvers. However, if a lower-level change has been manually made to the solver settings, the software will not automatically use the correct default solver. The solver settings are stored at Study > Solver Configurations > Solution. If these settings have been manually changed, you will see a small star symbol on the Solution feature, as shown in the screenshot below. If you see this, right-click on the Solution feature and select Reset Solver to Default. Alternatively, delete and re-create the study.
Screenshot showing a Solver Configuration that has been altered. Note the star symbol on the Solution feature.
COMSOL makes every reasonable effort to verify the information you view on this page. Resources and documents are provided for your information only, and COMSOL makes no explicit or implied claims to their validity. COMSOL does not assume any legal liability for the accuracy of the data disclosed. Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark details.