Repository navigation
Materials and coatings
Engineering requirements need material data with a source, and coatings need their mechanics. extensions/chemistry/materials.mojo gives expansion curves, melting points and eutectics. coating.mojo gives the stress in a coating, and the conditions where it peels, buckles or cracks.
This page is a reference. For the rest of the library, see Process chemistry.
An ExpansionCurve is a linear expansion coefficient at a list of temperatures, linear between them. strain(start, end) integrates it exactly, and mean(start, end) divides the strain by the temperature change. A mean coefficient is wrong where the coefficient changes much over a range, as diamond's does.
melting_point(element) gives an element's melting point at one atmosphere. The table holds W, Ta, Mo, Ti, Fe, Co, Ni, Pt, Cu, Au, Ag, Al, Mg, Zn, Bi and Si. The values are from the CRC Handbook. They agree with the phase transitions in the NASA data to 5 K or less.
eutectic_temperature(a, b) gives the lowest melting point of a binary system, in either order:
| System | Eutectic | Source |
|---|---|---|
| Fe-Ti | 1085 degC | Murray (1981) |
| Fe-C | 1147 degC, with cementite | The standard Fe-C diagram |
| Al-Si | 577 degC | The standard Al-Si diagram |
A stated bound in a step, such as the retort below the Fe-Ti eutectic, can then read its value from this table.
A coating deposited hot and then cooled holds a residual stress. The thick substrate sets the strain, so the coating is in equal biaxial stress. A positive stress is compression in the coating:
sigma = E_c / (1 - nu_c) * (alpha_s - alpha_c) * (T_dep - T_service)
mismatch_stress uses an ElasticLayer for each material: a modulus, a Poisson ratio and a mean expansion coefficient. curve_mismatch_stress uses an expansion curve for each material instead of the means.
| Function | Gives | Source |
|---|---|---|
delamination_thickness |
The thickest coating that does not peel from an edge: h = 2 E Gamma / ((1 - nu^2) sigma^2)
|
Hutchinson and Suo (1992) |
straight_buckle_stress |
The stress at which a delaminated strip buckles: (pi^2 / 12) E / (1 - nu^2) (h / b)^2
|
Hutchinson and Suo (1992) |
circular_buckle_stress |
The same for a disc, with 1.2235 for pi^2 / 12
|
Hutchinson and Suo (1992) |
thermal_shock_difference |
The sudden temperature change that cracks a brittle surface: sigma_f (1 - nu) / (E alpha)
|
Kingery's first parameter |
Here b is the half-width or the radius of the delamination. The interface fracture energy Gamma depends on the surface preparation. Measure it on the real surface, for example with an indentation or a scratch test.
stoney_stress gives the stress that a measured substrate curvature shows (Stoney, 1909):
sigma = E_s h_s^2 kappa / (6 (1 - nu_s) h_f)
stack_curvature is the inverse for a stack of thin layers: each layer adds its stress times its thickness. The tests check that the two invert each other.
processes.diamond holds typical properties in CVD_DIAMOND and CEMENTED_CARBIDE. Diamond deposited at 850 degC on carbide with 6 % cobalt cools to about 2.5 GPa of compression. At a fracture energy of 30 J/m², the limit is about 11 micrometers.
The coating is thin and the substrate is thick, so the substrate does not bend. The layers are elastic and isotropic. The table values are typical. Measure the values of the real material for a design.
Tutorials
How-to
- Install
- Run the checks
- GPU backend
- Coverage
- Measure examples
- Add a feature
- Add a scanned building
- Write documentation
Reference
- Scene graph
- Rotations
- Cameras
- Geometry
- Geometry addons
- Lofts and clipping groups
- Sculptor
- Procedural generators
- Meshes and assets
- Lines
- Points and sprites
- Helpers
- Scene objects
- Animated objects
- Raycasting
- Curves and paths
- Animation
- Skinning
- Materials
- Node materials
- TSL functions
- Lights
- Lighting addons
- Fog
- Textures
- Renderer
- Renderer hooks and material flags
- Rasterization
- GPU backend
- Render target
- Post-processing
- GPU computation
- Compute nodes
- Progressive light map
- Gaussian splats
- Voxel global illumination
- SVG renderer
- Image files
- Image decode queue
- Model files
- More model files
- Exporters
- Scene JSON
- Windowing and controls
- C ABI and hosts
- Math
- Norm consumers
- Math addons
- Units
- Coverage tool
- Commands
- Examples
- Benchmarks
- Extensions
- Shared physics
- Physics query snapshots
- Continuous collision
- Tick force restoration
- Water
- Warp drives
- Vegetation
- Village
- Streamline
- Animals
-
Buildings
- Numerics
- Building topology
- Building model
- IFC exchange
- Procedural towers
- Floor plans and interiors
- Frame analysis
- Shell analysis
- Building energy
- Construction kits
- Bearing walls
- Scanned buildings
- SOG files
- Compressed PLY files
- Scan parts
- Cleaning and orienting scans
- Walking through a scan
- Virtual scans
- Castle
- CARLA
- Femur
- Tibia
- Fibula
- Patella
- Knee
- Muscles
- Vessels
- Lymph
- Nerves
- Integument
- Leg
- Foot
- Pelvis
- Torso
- Arm
- Hand
- Head
- Genome
- Game humanoid
- Humanoid fidelity
- Mixamo animations
- Audio-aligned game faces
- Converted assets
- Mesh quality
- Garments
- Outfits and armor
- Cloth and spring bones
- Attire estimates
- Segment inertia
- Process chemistry
- Thermochemical data
- Chemical equilibrium
- Process maps
- Rates and transport
- Electrolysis and film color
- Binary solutions
- Flowsheets and routes
- Materials and coatings
- Crystals and figures
Explanation
- Software rasterizer
- Scene graph as an array
- Linear color
- Normals are not colors
- Perspective correction
- Fixed-point coverage
- Per-fragment shading
- Mipmaps
- Sorted transparency
- Types and checks
- Render hooks as a trait
- Shared CPU and GPU code
- Bands and threads
- PNG structure
- Extensions beside the port
- Process temperatures
- Scans as building models
- CUDA teardown hang
- Mojo compiler hang