Getting Your Simulations to Not Blow Up in Your Face
Physics Via Computer Simulation is not a magic box that turns equations into answers. It is a series of compromises you make every time you press run. The simulations don't tell you the truth. They tell you what happens under the assumptions you built into them, and those assumptions are usually where things go wrong. I spent three years trying to get a rigid-body impact simulation to match real-world drop test data for a consumer electronics client. The model kept showing a 40% lower peak force than what came out of the accelerometer rig. Turns out the contact stiffness parameter was calibrated on a flat steel plate, but the actual housing had ribs and bosses that changed the effective contact area by nearly half. You can spend weeks tuning solvers and you will still miss something obvious if you don't understand what the mesh is actually doing at the contact interface.
What Physics Via Computer Simulation Actually Means in Practice
At its core, you are taking a continuous physical problem and converting it into a discrete one. Differential equations become algebraic equations. A smooth surface becomes a collection of triangles or tetrahedra. Time becomes individual steps. Each conversion introduces error, and the errors compound. The job of the simulator is to manage those compounding errors so they stay below the threshold where they matter for your specific question. The most common software stack involves finite element analysis codes like Abaqus, ANSYS Mechanical, or open-source alternatives like CalculiX and Code_Aster for structural problems, and OpenFOAM or SU2 for fluid dynamics. For multibody dynamics you have Adams, RecurDyn, or Chrono::Engine if you want something free. Particle-based approaches use LAMMPS or ESPResSo. Pick the tool that matches your physics, not the one with the prettiest UI.
The Workflow Nobody Puts in Manuals
Here is how the work actually goes. First you define the geometry, which sounds simple until you realize that a fillet that is three millimeters in the CAD file might not exist in your mesh at all because you used a coarse element size to save memory. Then you assign material properties. This is where most people cut corners. Using a generic steel library entry instead of the actual alloy specification from your supplier will shift your results in ways you won't catch until a prototype fails. Boundary conditions come next. A fixed support in simulation is a mathematical node with zero degrees of freedom. In reality nothing is fixed. You need to decide whether to model the surrounding structure or just approximate its effect with springs and constraints. I learned this the hard way on a turbine blade vibration analysis where the support compliance added a second mode shape that completely changed the fatigue life prediction. The simulation said the part would last 10,000 hours. The test rig showed failure at 3,200 hours because we had ignored the flexibility of the mounting disk. Mesh generation is its own discipline. There is no universal correct mesh. A hexahedral mesh will generally give better accuracy per element than a tetrahedral one for structural problems, but generating hex meshes on complex geometries takes orders of magnitude more time. Tetrahedra are faster to generate but can suffer from shear locking unless you use reduced integration or specialized formulations. The rule of thumb that elements should be roughly uniform in size only works until you hit a stress concentration, at which point you need local refinement. And by local refinement I mean you need maybe twenty elements across the region where the stress gradient is steepest, not three or four like your first attempt probably had.
Get the Full Details

Solver selection matters more than people admit. Implicit solvers are unconditionally stable for static problems but each step requires solving a global system of equations, which gets expensive fast. Explicit solvers handle nonlinearities and contact better but require tiny time steps governed by the Courant-Friedrichs-Lewy condition. If your smallest element is one millimeter and the wave speed in your material is five thousand meters per second, your time step needs to be around two hundred microseconds. Running a one-second event with that time step means fifty million iterations. That is why explicit codes use mass scaling sometimes, which artificially increases density to allow larger time steps. It changes your physics slightly but can make a 3 day run finish in 6 hours. You need to know when that artifact matters and when it doesn't.
Verification and Validation Are Not the Same Thing
Verification answers whether you solved the equations correctly. Validation answers whether you solved the correct equations. These are separate problems that require different approaches. Code verification involves checking against analytic solutions where they exist. A cantilever beam under tip load has a closed-form deflection solution. Run your model and compare. If you are off by more than a few percent with a reasonable mesh, something is wrong with your setup. Method verification involves grid convergence studies where you refine the mesh repeatedly and confirm your results are asymptoting to a stable value. This is not optional. A single mesh result tells you almost nothing about accuracy. Validation requires experimental data. I cannot stress this enough. If you have never validated a simulation against physical tests, you do not know how accurate it is. You know how internally consistent it is, which is different. The gap between verification and validation is where projects die. I once saw a team spend eight months on a crash simulation for an automotive component, refining meshes and tuning material models to match correlation data. They never questioned whether their failure criterion was appropriate for the strain rates involved. The correlation looked good at nominal impact speeds. At higher speeds the predicted energy absorption was off by sixty percent because the material model did not account for strain rate hardening properly. They had verified their code perfectly and validated it at the wrong conditions.
Common Pitfalls That Waste Weeks
Neglecting convergence checking is the biggest one. People run a simulation, look at the result, and move on without confirming that reducing the time step or refining the mesh would not change the answer significantly. This is especially dangerous in nonlinear problems where the solution path can jump between different branches. Contact problems are notorious for this. A slight change in friction coefficient or penetration tolerance can flip your model from one contact state to another, giving a completely different physical response that still converges numerically. Another frequent issue is misusing linear materials for nonlinear problems. Young's modulus and Poisson's ratio describe elastic behavior. They do not describe plasticity, creep, viscoelasticity, or damage. If your simulation involves large deformations or loads beyond the yield point and you are using a linear elastic material model, the results will be qualitatively wrong even if the numbers look reasonable at first glance. Hyperelastic models for rubber, Johnson-Cook for metals at high strain rates, and damage evolution models for fracture are all standard tools, but they require material parameters that you either measure yourself or take from literature with full knowledge of how those parameters were obtained. Boundary condition artifacts are subtle and common. A symmetry boundary condition assumes the physical problem is symmetric. If your loading or geometry has any asymmetry, even a small one from manufacturing tolerances, the symmetry assumption will suppress realistic behavior. I ran a thermal simulation where the heat source was nominally centered but the cooling fins had a slight manufacturing variation. The symmetric model predicted uniform temperature distribution. The full model showed a fifteen degree Celsius hot spot that caused premature degradation in the actual product.

When Physics Via Computer Simulation Fails Completely
There are problems where simulation simply cannot help you. Turbulent flow separation with complex geometry and transient reattachment is still extremely difficult to predict accurately. RANS models approximate turbulence and can miss important unsteady features. LES and DNS are more accurate but computationally prohibitive for most engineering geometries. If your design depends on getting the turbulence right, you need wind tunnel testing regardless of what your simulation says. Material failure prediction is another area where simulation reaches its limits. Fatigue life estimation involves statistical scatter that no deterministic simulation can capture. You can get a mean life prediction, but the actual life of any individual component could be two times higher or three times lower depending on microstructural defects that no mesh can represent. For safety-critical fatigue applications, simulation supplements testing rather than replacing it. Multiphysics coupling is another hard problem. Thermal-stress coupling is manageable because the physics are weakly coupled. Fluid-structure interaction where the flow and structure strongly influence each other can be numerically unstable and requires specialized partitioned or monolithic coupling schemes. Electromagnetic-thermal-structural problems in motors and transformers are common in my work and they are painful. Each physics module has different time scales, different mesh requirements, and different convergence behavior. Getting them to talk to each other without introducing numerical artifacts usually requires custom scripting and a lot of debugging.
A Practical Starting Point
If you are new to this, start with a problem that has an analytic solution. A simply supported beam with a distributed load. A pressure vessel under internal pressure. Solve it by hand first, then build the model and compare. Do this five or six times with different configurations until you develop a sense for what a reasonable result looks like. Then move to something with a published benchmark, like the plane strain fracture mechanics problems in the FATigue DAta Handbook or the NAFEMS benchmarks collection. For free software, CalculiX is a solid choice for structural analysis and OpenFOAM for fluids. Both have active communities and plenty of tutorial cases. Ansys Student and Abaqus Student editions are available at no cost with restrictions on model size. These restrictions are enough for learning but will bite you if you try to do production work. Don't bother with the student versions for anything beyond education. They are intentionally crippled. The single most important habit you can develop is documentation. Every simulation you run should have a record of geometry version, mesh parameters, solver settings, material model and source, boundary conditions, and convergence criteria. Six months from now when someone asks why your result differs from last year's, you will be grateful you wrote it down. I have wasted days tracking down discrepancies only to discover I had changed a constraint without remembering it because I never documented the baseline case.
Read the theory manuals. Not the quick start guides, not the video tutorials, the actual theory sections of the documentation. They explain what the solver is actually doing, what approximations it makes, and where it is known to have difficulties. This information is scattered through the documentation and most people skip it. Skipping it is how you end up with a simulation that looks right but is wrong. The field moves slowly but it moves. New element formulations, better turbulence models, and improved multiphysics coupling strategies come out regularly. Subscribe to a couple of journals or follow the technical papers from conferences like the International Meshing Roundtable and the AIAA Applied Aerodynamics Conference. You do not need to read everything, but you need to know what capabilities exist so you can recognize when your current approach is insufficient for the problem you are facing.
