Aerospace Data Analysis

MVR
Analytics

Data analytics and automated finite element workflows for aerospace and advanced engineering applications.

01 — About

Engineering background,
practical mindset.

I'm Vlad Radulescu, an aerospace engineer with a focus on structural analysis, finite element methods, and the physics that govern systems operating in extreme environments.

With over 15 years of hands-on experience in Aerospace, I bring pragmatic industry knowledge to every data project I take on. Holding a Master of Engineering degree in Aerospace Engineering from McGill University, I combine academic rigor with practical, real-world expertise to deliver high-quality results for my clients.

My work spans the intersection of classical engineering fundamentals and modern computational methods. I approach every engagement with rigor, curiosity, and a commitment to results that hold up under scrutiny.

Focus Areas

  • Finite Element Analysis (FEA)
  • Data Analytics

Industries Served

  • Aerospace & Defense
  • Space Systems
  • Propulsion & Turbomachinery
  • Advanced Manufacturing
  • R&D / Academia

Tools & Methods

  • NASTRAN
  • Python, C, Javascript
  • Technical Documentation

02 — Services

What I offer.

Featured

Web-based NASTRAN Workflow

Lightweight browser-based tooling for NASTRAN model generation and automation, batch solves, and results post-processing. See it in action at nastran.mvr-analytics.com.

Visit NASTRAN Site

01

Data Analytics & Finite Element Analysis Modeling Software

Data-driven engineering analytics and finite element model software development, built on the principle of automated, scalable NASTRAN workflows — see nastran.mvr-analytics.com.

02 - Pending

Drone Operations & Aerial Imaging

Aerial photography, videography, and site/asset inspection flights. Currently completing FAA 14 CFR Part 107 Remote Pilot certification — available for engagements once certified.

03

3D Printing & Rapid Prototyping

3D printing for prototypes, functional test parts, and small-batch custom components. From your design file to a finished print, or design support drawing on an engineering background.

Scope varies by project. Engagements range from focused hourly reviews to multi-week deliverables.

03 — Contact

Start a conversation.

Location

San Jose, USA. Available remotely & on-site visits

Response time

Within 1–2 business days

Availability

Currently accepting new projects

04 — Tutorials

Worked FEA examples.

By Mircea-Vlad Radulescu — image placeholders below mark where step screenshots go; see Tutorials/StrutExample_M3d.docx for the original.

A simple landing gear strut example where a 3-member assembly (members O–A, O–B, O–C) resists vertical and drag force similar to those on a landing gear. Build a strut model similar to Section 2.3, Example 1 in Peery's Aircraft Structures, with single-point restraints and a single-point force at the tip of the strut. Find the loads in the two-force members O–A, O–B, O–C and compare the results with the hand-calculation equivalent.

🖼️ Screenshots — model overview Wireframe and shaded views of the finished strut model, same as the docx's own cover images. suggested: strut-00-overview.png

Peery, J. David. Aircraft Structures. Dover Publications (2011), originally McGraw-Hill Book Company Inc., 1950, New York.

Part 1
1 Nodes

Create a Node Set to represent the strut nodes O, A, B, C. Using the Node Create tool, enter locations directly in the command line (coordinate system is global/basic):

O 0, 0, 0 A 0, 30, 40 B 20, 30, 40 C 30, 0, 40

Then add 10 nodes in between each pair (Node-in-Between tool — pick the first and second node sets, Enter No > 10) for a finer visual mesh along each member. Deselect All before continuing.

🖼️ Screenshots needed Node Create — coordinates entered in the command line The four strut nodes (O, A, B, C) placed in the model Node-in-Between — picking the first/second node sets, count set to 10 suggested: strut-01a-nodes-coords.png, strut-01b-nodes-placed.png, strut-01c-nodes-between.png
2 Elements

Select the Beam Element tool, then the Element Create tool, to connect tip node O to each of A, B, and C in turn — three elements total.

🖼️ Screenshot needed Beam Element Create — the three O–A / O–B / O–C members picked suggested: strut-02-elements.png
3 Element Properties

Create a steel material: Create ▸ FEM Tools ▸ Material ▸ Isotropic. Then a round-tube beam section referencing it: Create ▸ FEM Tools ▸ Property ▸ Beam Tube.

Do (outer diameter) 1 in t (wall thickness) 0.1 in Di (inner diameter) 0.9 in A (area) 0.5969 in² J (torsion constant) 0.0039794 in⁴ I (moment of inertia) 0.2700984284 in⁴
🖼️ Screenshots needed Material ▸ Isotropic — steel property entry Property ▸ Beam Tube — section dims + Material ID reference suggested: strut-03-material.png, strut-03-property.png
4 Apply Element Properties

Tools ▸ Element Modify ▸ Property ID — select all three elements, Right Click ▸ Done, key in the Beam Tube property's ID.

🖼️ Screenshot needed Element Modify ▸ Property ID, with all three elements selected suggested: strut-04-apply-properties.png
5 Check for Coincident Nodes

Tools ▸ Checks ▸ Merge Coincident Nodes — box-select all nodes, Done, accept the default tolerance, then delete any duplicates it finds. Good practice before solving.

🖼️ Screenshot needed Merge Coincident Nodes — tolerance prompt / duplicate-node list suggested: strut-05-coincident.png
6 Load Set

LoadsBC ▸ Load Sets — add a Set ID and title, Create, then OK. The new set becomes the active one automatically.

🖼️ Screenshot needed Load Sets window — creating the active set suggested: strut-06-load-set.png
7 Boundary Condition Set

LoadsBC ▸ BC Sets — same pattern as Load Set.

🖼️ Screenshot needed BC Sets window — creating the active set suggested: strut-07-bc-set.png
8 Create Restraints

LoadsBC ▸ Create Restraint — pick nodes A, B, and C. Translation Restraint Vector 1 1 1 (fixed), Rotation Restraint Vector 0 0 0 (free) — a true pin at each, matching the two-force-member assumption.

🖼️ Screenshots needed Create Restraint — translation/rotation vector entry The three pinned supports (shown against a black background for clarity) suggested: strut-08-restraints.png
9 Create Forces

LoadsBC ▸ Create Force — pick node O. Force vector in the command line:

1000 0 4000 lbf (Fx, Fy, Fz)

If needed, refine the value afterward via Edit Object Values ▸ pick the force vector ▸ Entity Editor.

🖼️ Screenshots needed Create Force — vector entry at node O Entity Editor — force magnitude/direction fields suggested: strut-09-forces.png
10 Create Solution

Solution ▸ Create Solution — Solution Type Linear Static, Tolerance default. Create, then OK.

🖼️ Screenshot needed Create Solution window suggested: strut-10-solution.png
11 Create Solution Set

Solution ▸ Create Solution Step — select the Load Set and BC Set (no Temperature Set), add a Step Title. Create, then Activate, then OK.

🖼️ Screenshot needed Create Solution Step window suggested: strut-11-solution-step.png
12 Solve

Solution ▸ Solve. The run should take a second — console output ends with:

STARTING ASSY STARTING ITERATIVE SOLUTION ITER: 0 Err: 1.0000000000000000 ITER: 100 Err: 0.0281846423725408 ITER: 200 Err: 0.0016478307835453 ITER: 300 Err: 0.0000118095067473 FINAL ERROR ITER: 361 Err: 0.0000000004759823 FINISHED SOLUTION

Solved successfully, with a negligible final iteration error.

13 Post-Processing — Deformation

Deformed Results ▸ Select Displacements ▸ OK, then the Deformed Shape button to view it. If it's hard to see, use Change the Deformation to rescale (e.g. 10). Contour plot (Select Contour Results) gives per-node displacement components:

Min TX = -0.235437 Min TY = -0.235444 Max TZ = 0.228919

Deformation at point O is hard to estimate by hand (it depends on the interaction of all three deforming/rotating members) — not attempted here.

🖼️ Screenshots needed Deformed shape overlay (rescaled) TX / TY / TZ contour plots suggested: strut-13-deformation.png
14 Animation

With a deformed shape selected, click Animate to breathe the shape between undeformed and deformed.

15 Element Forces

Select Contour Results ▸ END B FX for axial load, then pick each member's end element individually:

O–A: -4,998.33 lbf O–B: 5,383.02 lbf O–C: -4,998.85 lbf

Close to the hand-calculation estimate — see Appendix 1 below.

🖼️ Screenshot needed END B FX contour, with each member's axial force picked suggested: strut-15-element-forces.png
16 END

This completes Part 1 of the tutorial. See the appendices below for the hand-calculation check.

Part 2 — eccentric load

Assuming the force is eccentric, 6 inches laterally off point O to simulate a wheel axle. Find the forces at A, B, and C assuming members O–B and O–C are two-force members (SPC 123) while O–A resists bending and torsion, and point A is a universal joint that can carry torsion but no bending (SPC 12356).

17 Nodes

Add one more node, 6 inches off O, to represent the eccentric load application point:

0, -6, 0
18–20 Elements, Element Properties, Apply Element Properties

Same pattern as Part 1, reusing the same material and Beam Tube property.

21 Check for Coincident Nodes

Same as Part 1 — good practice to repeat after adding the new node.

22–23 Load Set, Boundary Condition Set

Reuse the same Load Set and BC Set from Part 1 — just press OK without creating new ones.

24 Create Restraints

If modifying the Part 1 model directly, filter-select and delete the existing restraint at point A first, then recreate it:

A — Translation 1 1 1, Rotation 0 1 1 (universal joint — carries torsion, not bending) B — Translation 1 1 1, Rotation 0 0 0 (unchanged pin) C — Translation 1 1 1, Rotation 0 0 0 (unchanged pin)
25 Create Forces

Remove the force at O (if reusing the Part 1 model), then apply the same vector at the new eccentric node:

1000 0 4000 lbf
26–29 Create Solution, Create Solution Set, Solve, Post-Processing

Same steps as Part 1.

ITER: 0 Err: 1.0000000000000000 ITER: 100 Err: 0.0017885452628859 ITER: 200 Err: 0.0005264253932269 ITER: 300 Err: 0.0000069196846159 FINAL ERROR ITER: 352 Err: 0.0000000004318397 FINISHED SOLUTION
30 Deformation
Max TX = 0, Min TX = -0.359233 Max TY = 0.346809, Min TY = -0.289001 Max TZ = 0.824919, Min TZ = -0.230741

Larger than Part 1 — the eccentric load imparts bending and torsion that Part 1's pure axial load didn't.

31 Animation

Note the torsional deformation present here that Part 1 didn't have.

32 Element Forces
O–A: -5,634.04 lbf O–B: 6,844.48 lbf O–C: -5,974.20 lbf

Loads increase compared to Part 1, as expected. Note the FEM torsion output doesn't match the hand calc's torsion estimate — see Appendix 2.

33 END

This completes Part 2. See the appendices below for the hand-calculation check.

Member forces estimated by hand, assuming each member takes only axial load along its own axis (i.e. as if the elements were rods rather than beams — close enough to approximately corroborate the model).

Tube section (Peery Example 1, Ch. 2.3)
PropertyValue
Do (outer diameter)1 in
t (wall thickness)0.1 in
Di (inner diameter)0.9 in
A (area)0.5969 in²
J (torsion constant)0.0039794 in⁴
I (moment of inertia)0.2700984284 in⁴
Member geometry & direction cosines
PointXYZLengthx̂ŷẑ
A03040500.0000.6000.800
B20304053.850.3710.5570.743
C30040500.6000.0000.800
Member axial force — hand calc vs. FEM (END B FX)
MemberHand calcFEM% diff
O–A-5,000.00 lbf-4,998.33 lbf-0.03%
O–B5,385.16 lbf5,383.02 lbf-0.04%
O–C-5,000.00 lbf-4,998.85 lbf-0.02%
🖼️ Screenshot needed Book snapshot — Peery Example 1, p.23 (hand-calc reference figure) suggested: strut-appendix1-book.png

Hand calc assumes O–B and O–C take only axial load along their own axes, while O–A also carries torsion. The torsion load is resolved first, then the force-sum equations are set up with one unknown each. Note the FEM torsion output doesn't match the hand-calc torsion estimate (T vs. END B BX) — flagged in the original tutorial as a known discrepancy, not a modeling error to chase down.

Forces & moments — hand calc vs. FEM
Hand calcFEM% diff
FA-5,701 lbf-5,634.04 lbf-1.17%
FB6,806.85 lbf6,844.49 lbf0.55%
FC-6,000 lbf-5,974.20 lbf-0.43%
Ts2,880 in·lbf— (not separable in FEM output)—
Tv3,840 in·lbf— (not separable in FEM output)—
T4,800 in·lbf617.59 in·lbf-87.13%
🖼️ Screenshot needed Book snapshot — Peery Example 2, p.25 (hand-calc reference figure) suggested: strut-appendix2-book.png
Need the full derivation? The complete matrix setup and intermediate steps are in Tutorials/StrutExample_M3d.docx in the nastran-visualizer-vite repo.

By Mircea-Vlad Radulescu — image placeholders below mark where step screenshots go; see Tutorials/Beam_w_WebExample_M3d.docx for the original.

Create a simple beam model (a truss-like structure) with single-point restraints and a single-point force at the tip. First create nodes and elements, then assign material properties and orientations. Forces and boundary conditions are set, a solution is created and solved, then results are post-processed for deformation and element forces — corroborated against a hand calculation.

🖼️ Screenshots — model overview Wireframe and shaded views of the finished beam model suggested: beam-00-overview.png
1 Nodes

Create a Node Set to represent the beam:

A 0, 0 B 0, 3 C 4, 3

Add 6 nodes in between (Node-in-Between tool) for a finer visual mesh along each segment. Deselect All before continuing.

🖼️ Screenshots needed Node Create — coordinates entered in the command line Node-in-Between — count set to 6 suggested: beam-01a-nodes-coords.png, beam-01b-nodes-between.png
2 Elements

Beam Element tool, then Element Create — connect A–B and B–C.

🖼️ Screenshot needed Beam Element Create — the two A–B / B–C members picked suggested: beam-02-elements.png
3 Element Properties

Create a steel material: Create ▸ FEM Tools ▸ Material ▸ Isotropic. Then an I-beam section referencing it: Create ▸ FEM Tools ▸ Property ▸ Beam I2.

🖼️ Screenshots needed Material ▸ Isotropic — steel property entry Property ▸ Beam I2 — section dims + Material ID reference suggested: beam-03-material.png, beam-03-property.png
4 Apply Element Properties

Tools ▸ Element Modify ▸ Property ID — select both elements, key in the Beam I2 property's ID.

🖼️ Screenshot needed Element Modify ▸ Property ID, both elements selected suggested: beam-04-apply-properties.png
5 Modify Element Vectors

Tools ▸ Element Modify ▸ Beam Up Vectors — box-select both elements, Done, Key In the up vector:

0 1 (up vector, X1 X2)

An I-beam's bending stiffness depends on which way it's facing, unlike the Strut example's round (axisymmetric) tube. Section properties can be refined afterward via Edit Properties Values ▸ pick an element ▸ Entity Editor.

🖼️ Screenshots needed Beam Up Vectors — Key In 0 1 Entity Editor — section property refinement suggested: beam-05-up-vectors.png
6 Check for Coincident Nodes

Tools ▸ Checks ▸ Merge Coincident Nodes — box-select all nodes, accept the default tolerance, delete any duplicates found.

🖼️ Screenshot needed Merge Coincident Nodes — tolerance prompt / duplicate list suggested: beam-06-coincident.png
7–8 Load Set, Boundary Condition Set

LoadsBC ▸ Load Sets, then LoadsBC ▸ BC Sets — add a Set ID/title, Create, OK for each. Both become active automatically.

🖼️ Screenshots needed Load Sets window BC Sets window suggested: beam-07-load-set.png, beam-08-bc-set.png
9 Create Restraints

LoadsBC ▸ Create Restraint — pick node A only. Translation Restraint Vector 1 1 1, Rotation Restraint Vector 1 1 1 — fully fixed, a true cantilever root.

🖼️ Screenshot needed Create Restraint — node A fully fixed suggested: beam-09-restraint.png
10 Create Forces

LoadsBC ▸ Create Force — pick node C (the free tip). Force vector in the command line:

0 -10000 (Fx, Fy)

Refine via Edit Object Values ▸ Entity Editor to a larger negative value, FY = -100000, for a clearer result.

🖼️ Screenshots needed Create Force — vector entry at node C Entity Editor — FY refined to -100000 suggested: beam-10-forces.png
11 Create Solution

Solution ▸ Create Solution — Linear Static, default tolerance. Create, then OK.

🖼️ Screenshot needed Create Solution window suggested: beam-11-solution.png
12 Create Solution Set

Solution ▸ Create Solution Step — select the Load Set and BC Set, add a Step Title. Create, then Activate, then OK.

🖼️ Screenshot needed Create Solution Step window suggested: beam-12-solution-step.png
13 Solve

Solution ▸ Solve. Console output:

SOLUTION: Lin Stat NO OF EQUATIONS:- 78 GLOBAL LOADS RESULTANT:- FX: 0.0000000000000000 FY: -100000.0000000000000000 FZ: 0.0000000000000000 MX: 0.0000000000000000 MY: 0.0000000000000000 MZ: -400000.0000000000000000 STARTING ASSY STARTING ITERATIVE SOLUTION ITER: 0 Err: 1.0000000000000000 FINAL ERROR ITER: 43 Err: 0.0000000000000141 FINISHED SOLUTION

Solved successfully, with a negligible final iteration error.

14 Post-Processing — Deformation

Deformed Results ▸ Select Displacements ▸ OK, then Deformed Shape to view it. Rescale (e.g. 100) if hard to see. Contour plot gives per-node displacement:

Max TX = 0.00124857 Min TY = -0.00492352

Close to the hand-calculation estimate — see Appendix 2 below.

🖼️ Screenshots needed Deformed shape overlay (rescaled) TX / TY contour plots suggested: beam-14-deformation.png
15 Animation

With a deformed shape selected, click Animate.

16 Element Forces

Select Contour Results ▸ END B FX for axial load:

Top element (B–C): EF1 = 128,915 Diagonal element (A–B): EF2 = -161,504

Both close to the hand-calculation estimate — see Appendix 1 below.

🖼️ Screenshot needed END B FX contour, with each member's axial force picked suggested: beam-16-element-forces.png
17 END

This completes the tutorial. See the appendices below for the hand-calculation check.

Member forces estimated by hand, assuming the truss structure members take only axial load along their own axes (as if rods rather than beams — close enough to approximately corroborate the model).

Geometry & applied load
QuantityValue
P (applied load)-100,000
Height3
Length4
Angle Θ0.644 rad (36.87°)

Summing forces about point C (ΣFx = F1 + F2·cos Θ = 0, ΣFy = P + F2·sin Θ = 0):

Member forces
MemberForceSense
E1 (= -F1, top/B–C)133,333Tension
E2 (= -F2, diagonal/A–B)-166,667Compression
🖼️ Screenshot needed Load/geometry diagram — two-force-member idealization (P, Θ, F1, F2) suggested: beam-appendix1-diagram.png

The beam elements are estimated as axial springs (k = A·E/L) to get a first-order deformation estimate.

Section & material
QuantityValue
dim1 (height)0.4
dim2 / dim3 (flange width)0.2 / 0.2
dim4 (web thickness)0.01
dim5 / dim6 (flange thickness)0.005 / 0.005
Area, A0.002 m²
Modulus, E70,000,000,000 Pa
L1 (B–C) / L2 (A–B)4 / 5
k1 = A·E/L135,000,000
k2 = A·E/L228,000,000
Estimated deformation
QuantityValue
δ1 = EF1/k10.0038
δ2 = EF2/k2-0.0060
δx = δ1 + δ2·cos Θ (point C)-0.0010
δy = δ2·sin Θ (point C)-0.0036
Need the full derivation? The complete setup and intermediate steps are in Tutorials/Beam_w_WebExample_M3d.docx in the nastran-visualizer-vite repo.