Product / TensorLynx / Design exploration

Define · Geometry-driven design exploration

Parametric design exploration where every variant is rebuilt, meshed and checked

Most design questions still begin as a redraw: edit the CAD, re-export, re-mesh, and hope the boundary names still point at the right faces. The TensorLynx platform turns the question into a study. You declare which dimensions may move and how far; every variant is regenerated from CAD, checked, meshed on its own and solved, and nothing that fails is quietly lost.

Design variables carry type, unit and boundsNamed faces resolved by rule, never by indexSeeded, reproducible sampling plans

An S-duct family morphing through its design space Side view of a duct whose outlet offset, mid-section diameter, bend position and section aspect change as a cursor steps through sixteen sample points of the design space. Schematic, drawn from the family's own station formula. h inlet outlet mid-section S-DUCT FAMILY · 4 DESIGN VARIABLES throat h h0.060 mthroat0.95skew1.00flat1.00

Schematic Drawn from the S-duct family's station formula; move the pointer over it.

The cost of the old way

The expensive failures are the ones that do not crash

Hand-built variants cost analyst hours, and everyone budgets for that. Nobody budgets for a variant that runs cleanly and is wrong. We measured three such failures while building TensorLynx; each is now stopped before it reaches a solver.

The mesh still builds. The solver still runs. The answer belongs to another design.

A boundary tag that drifts onto the removed half of a symmetric duct kept half: wall tag lands on the cut-away face symmetry

A wall on the symmetry plane

A reference script named its boundaries by the CAD kernel's face numbers. Meshed at five duct diameters, the numbers survived and their meaning did not: at three of the five, the wall group picked up a face from the half the symmetry cut had removed. Measured · in-house, 5 diameters

Requested mesh sizes from 20 to 5 all give the same 988-element mesh 988 elements, byte-identical 2015105 requested max size → refines below ≈ 4

Three refinements, one mesh

On an imported B-rep box, every requested maximum size from 20 down to 5 gave a byte-identical mesh of 988 elements. A refinement study built on it still produces a number. Measured · 30×20×15 box

Sixteen Sobol' points fill every cell of a four by four grid; twelve points leave 4 cells empty n = 16 = 2⁴ n = 12 every cell hit once 4 cells never sampled

A plan that quietly lost its balance

A Sobol' sequence keeps its balance only at a power-of-two count. Ask for 12 points instead of 16 and part of the design space is never visited, with no error raised. Method property

None of these appear in a residual plot. They surface later, as a decision made on a design nobody analysed.

How TensorLynx does it

From a parameter to a solved design, with a check at every hand-off

01 · Declare

Give a parameter bounds and it becomes a design variable

Give a dimension a minimum, a maximum and a unit and it becomes a design variable, the only kind a study may move. An inverted range, or a nominal value outside its own bounds, is refused when the variable is created; a zero-width range is refused with the fix named. Inside, everything is SI.

02 · Sample

Choose a sampling plan, with a seed

Latin hypercube, Sobol' or full factorial, drawn in the normalised unit box. The seed is fixed by default, because a plan whose points change between runs is not a study. Ask for a Sobol' count that is not a power of two and the platform names both neighbours rather than rounding silently.

03 · Regenerate

Rebuild every variant from CAD, and make it prove it belongs

Each sample point is rebuilt by the B-rep CAD kernel in memory. The result must prove it is still a member of the family: every named face resolves to the number of faces it declared, and every face is claimed.

04 · Mesh

Mesh each design on its own, from engineering intent

Every design gets its own mesh in an isolated meshing worker, sized from stated targets, a y⁺ and cells across a reference length, not mesher settings. Named faces become mesh markers by rule, and each is cross-checked by face area before anything is named.

05 · Run

Run the campaign and keep every outcome

A solve becomes data only when its objective has stopped moving. A design that fails to build, mesh or solve is recorded with stage and reason; one that will not settle is left out, reason shown. Missing is never zero, and a resumed campaign re-solves nothing.

06 · Read

Read the space before you search it

The campaign opens in Results Analysis and History like any solver run. What it often shows first is the box itself: where the response is flat, where it is steep, and whether the best region is pressed against a bound you set. That is the moment to widen a range.

The exploration pipeline: design variables, sample plan, regenerated body, own mesh, solved campaign Four panels build up step by step: bounded design variables, a 64-point Sobol' plan in the throat and offset projection, one sample rebuilt as a body with its named faces, the same body meshed with graded wall refinement, then the campaign coloured by response with left-out designs marked and a bound highlighted. Schematic; response colours are a synthetic demonstration. Design variables h0.03 – 0.09 m throat0.80 – 1.20 – skew0.60 – 1.60 – flat0.70 – 1.40 – throat → h → 64 + nominal · seed fixed inlet ✓wall ✓outlet ✓symmetry ✓ · member of the family own mesh · graded wall refinement isolated meshing worker responseleft out on the h bound

Schematic S-duct family bounds as declared; sample positions are an unscrambled Sobol' projection; response colours are a Synthetic demo. The bound in step 6 is the measured result shown under Evidence.

Inside the engine

The regeneration chain, for the engineer who will sign it off

Move the family's box yourself. The sliders carry the S-duct family's declared bounds, and the drawing follows its station formula: the centre line rises by a smooth step of u = fskew, the mid-section diameter scales by throat along a 4f(1 − f) bump, and the section keeps its area while its aspect changes with flat.

Interactive S-duct side view and mid-section, redrawn from four bounded design variables mid-section x = (0.500, 0.375, 0.400, 0.429) · inside the box
Schematic Bounds and formula from the S-duct family definition; x is the normalised vector every sampler works in.
The regeneration chain from a parameter vector to a solver case; focus a node for what it checks parameters pbounded · SI expressionsrestricted evaluator B-rep rebuildin memory membership4 verdicts area cross-checkrefuse, not misname meshing workerisolated · intent-sized solver casefrom roles any blocking verdict stops the chain with its reason
Method Focus or hover a node to see what it checks.

DesignVariable(name, value, minimum, maximum, units)  ·  xi = (vi − mini) / (maxi − mini) ∈ [0, 1]

Bounds live beside the value, so stored documents keep loading and "no bounds" stays a normal state for a parameter that should not move. The readiness check lists, in one pass, every reason a document is not yet a family, such as a design variable without bounds or a face no region claims.

Sobol': balanced at n = 2m  ·  full factorial: levels = n1/d, rounded and reported

Latin hypercube sampling stratifies each variable into n intervals sampled once; Sobol' points are a low-discrepancy sequence balanced at powers of two. A shape-family campaign plans the nominal design, then a scrambled Sobol' sequence over design variables and operating conditions together, a pure function of the specification, so a resumed run asks the same questions.

VerdictMeaningEffect
VALIDthe same faces as the last resolutionproceeds
REMAPPEDthe declared number of faces, but different onesproceeds, surfaced to the user
AMBIGUOUSmore or fewer faces than declaredblocks meshing
BROKENmatches no face at allblocks meshing

A named selection is a name plus a rule, built from five clause kinds: position plane, position range, normal direction, area range and length range. Rules are data, never code, re-resolved after every edit; a blocking verdict stops work at creation, at meshing and at hand-off to simulation.

h1 = 2 · y⁺ · ν / uτ  ·  uτ = √(τw/ρ)  ·  τw = (f/8)·ρ·U²  ·  f = (0.790 ln Re − 1.64)−2

The engineer states a target y⁺, cells across a reference length, a resolution rung and the wall roles; the first-cell height is derived, with y⁺ quoted at the cell centre. The friction factor follows Petukhov's correlation and warns outside its fitted range. The refinement ladder varies one scalar by a ratio of 1.5 and holds the near-wall cell fixed; the mesh verification chapter takes it from there.

SICN = 3 / (‖A‖F · ‖A−1‖F)  ·  1 regular, < 0 inverted  ·  floor 0.02

A design one small step from a solved one can reuse that mesh, moved to the new wall with the volume following by elasticity, the path on which adjoint gradients are exact. Every moved mesh is judged by the signed inverse condition number of each tetrahedron, no element inverted and the worst above the contract's floor. A step that fails is remeshed from its CAD and solved, never rejected, and its record says so. The adjoint optimisation chapter carries gradients through the moving mesh.

Evidence you can check

One family, walked from definition to exported CAD

The S-duct is the reference family: four design variables, a pressure-drop objective, a half model on a symmetry plane. Every value below was measured and read from the study's own records; the acceptance bars were declared in code before the family existed, and none was moved.

65
designs planned: the nominal plus 64 Sobol' points, each regenerated from CAD and meshed on its own Measured
61
solved and converged; 4 left out with their reasons, 0 failed to build, mesh or solve Measured
26,968–255,296
cells per design: every mesh is the consequence of its own geometry Measured
1.46 × 10⁻¹⁴
volume difference after STEP export and read-back, against a bar of 10⁻⁶ Measured
The 65 designs of the S-duct campaign: 61 converged, the nominal marked N, four not converged marked with an exclamation sign N!!!! converged (61)left out, reason recorded (4)0 failed
The campaign, by design number. Focus a marked square for its reason.Measured · 78 min solver time, 4 cores
Baseline and verified design inside the four design-variable ranges: flat, h and skew end on their lower bounds, throat stays inside flaton bound0.701.40 hon bound0.03 m0.09 m skewon bound0.601.60 throatinside0.801.20 baselineverified design
Three of four variables end on a bound: the record reads "the family's box, not the physics, stopped the search".Measured

What the campaign told us before any optimiser ran

The search inside this box returned a design with 8.0 % lower pressure drop than the baseline (79.30 → 72.98 Pa), verified by the solver at one operating point, 10 m/s, and 8.9 % lower again on a second, independently generated mesh. Measured The more useful finding: three variables pressed against their bounds, so the next question is a wider box. The same pipeline drives a finite-element solver: an L-bracket and a heated-bracket family each solved 65 of 65 designs. Measured

A deliberately large step, halfway to the far corner of the box, left the moved mesh with 228 inverted elements. The design was rebuilt from CAD, meshed afresh and solved to a converged 118.96 Pa; its record says so. Measured

Worst element quality on the moved mesh: 0.225 before the move, minus 0.947 after, against a floor of 0.02, so the design is remeshed from CAD floor 0.02 before 0.225 after −0.947 · 228 inverted −101 (regular) → remeshed from CAD, converged
Worst signed inverse condition number on the moved mesh (93,440 elements).Measured
What it changes for your programme

Decisions start from a mapped design space, not a single candidate

Engineering lead

Reviews start from the space: which variables matter, which bounds bind, which variants could not be built, before optimisation budget is spent.

Analyst

No re-exporting, re-tagging or re-meshing by hand. Boundary conditions follow named faces through every rebuild, and a variant that breaks them stops before it reaches the solver.

Programme manager

A campaign is a planned, counted, resumable job with a fixed seed. What was asked, answered and left out is on record, ready for provenance and audit.

Where OLTRION engineers apply it

  • Intakes, diffusers and ducts (aerospace, automotive): offset, throat and section shape against pressure loss, with the outlet held to its package.
  • Brackets and mounts: thicknesses and radii at a fixed volume, scored by a structural stress aggregate from the finite-element solver.
  • Heat sinks and cold plates (energy, electronics): fin and channel geometry against thermal resistance and pressure drop, each design built from its own CAD.
  • Manifolds and nozzles (process equipment): branch geometry against flow split, before coupled multiphysics adds heat and structure.
StepTypical workflowWith TensorLynx
Making a variantEdit the CAD, export, re-importRegenerated in memory from bounded variables
Boundary namesRe-tagged by hand, or by face numberResolved by rule; ambiguous or broken blocks the mesh
MeshingMesher settings copied between variantsEach design meshed from stated intent, in an isolated worker
SamplingA spreadsheet of chosen pointsSeeded Latin hypercube, Sobol' or factorial; Sobol' balance checked
FailuresDropped or overwrittenRecorded with stage and reason; missing is never zero
Hand-overA folder of filesA campaign that opens like solver output, and STEP read back

A mapped space is what the rest of the loop learns from: trust-aware surrogates are trained on these campaigns, and the TensorLynx overview shows where each chapter takes it next.

FAQ

Questions engineers ask first

Can we explore our own CAD, or only geometry built in TensorLynx?

Both. STEP, IGES and BREP files are imported with shape healing and a free-edge report. To explore a part, the dimensions you want to vary become bounded design variables driving an editable feature tree; on a first family our engineers usually set this up with you.

Which sampling plans are available, and why is the seed fixed?

Latin hypercube, Sobol' and full factorial, drawn in the normalised unit box. The seed is fixed by default because a plan whose points change between runs cannot be reproduced. A Sobol' count that is not a power of two is flagged with both neighbouring counts.

What happens when a variant cannot be built, meshed or solved?

It is recorded with the stage and the reason, never dropped and never filled with a number. A solve that has not settled gets one longer run; if it still has not settled it is left out of every model, with its reason shown.

How is the mesh kept consistent when the geometry changes this much?

Each variant is meshed on its own from engineering intent: a target y+ and cells across a reference length. Boundary names follow faces by rule and are cross-checked by face area. A moved mesh that fails its quality check is replaced by a fresh mesh from CAD.

Is design exploration the same as optimisation?

No. Exploration maps the space before an optimisation budget is spent on it: which variables matter, where the response is steep, which bounds bind. The same campaign then feeds the rest of the loop, from coupled physics to surrogates and multidisciplinary optimisation.

What do we receive at the end of a study?

The campaign, laid out as solver output so every design opens in Results Analysis and History; the record of what was planned, solved and left out; and the chosen design as CAD, exported as STEP and read back.

One loop, not twelve tools

Where design exploration sits in the TensorLynx loop

Every capability hands its result to the next on the same model, the same units and the same record: geometry feeds physics, physics feeds sensitivities and learning, optimisation proposes, verification confirms, and the history keeps every step reproducible.

The TensorLynx loop: Design exploration, Coupled multiphysics, Mesh verification, Adjoint optimisation, Gradient verification, Trust-aware surrogates, Full-field ROM, Multi-fidelity, MDAO, Pareto selection, High-fidelity reassessment, Provenance. TensorLynx one model · one record DefineSimulateImproveLearnOptimiseDecideVerifyRecord Design exploration Coupled multiphysics Mesh verification Adjoint optimisation Gradient verification Trust-aware surrogates Full-field ROM Multi-fidelity MDAO Pareto selection High-fidelity reassessment Provenance
Schematic of the platform workflowSchematic
Work with OLTRION

Bring us the design question. Leave with a verified answer and the record behind it.

TensorLynx is built and run by the engineers who use it on client work. You can start small, with one geometry and one question, and grow into a workflow your own team owns.

Feasibility review

Send a geometry, the objective and the constraints. We tell you which TensorLynx route answers it, what it needs from you, and what you will get back.

We run the study

Our engineers run the loop on your problem: physics, sensitivities, optimisation and full-model verification, handed over with every setting on record.

A workflow built for your product

A TensorLynx workflow, surrogate and verification gates set up around your product family, so the next design cycle starts where the last one ended.

Platform access and handover

Your team on TensorLynx, trained on your own cases, with OLTRION engineers behind it for the questions that need a specialist.