Flat-Plate Radial-Inflow Turbine for sCO2: 2D Blade Geometry, Sizing Method, and FileMaker Code

Supercritical Turbine Rotor Design

Rotor body: single flat disc, thickness t.

Blades: cut into the disc as planar wedge airfoils with constant thickness (or 2.5D engraving if you want a slight leading-edge radius).

Geometry: all variation is in-plane (no 3D lean, sweep, or thickness stacking).

Trade-offs: lower diffusion capability and higher loss vs. 3D impellers. Aim for pressure ratio per stage ~1.25–1.5 and keep tip Mach moderate.

Baseline design targets for sCO₂ (flat rotor)

Overall pressure ratio per stage: 1.25–1.5

Flow coefficient φ = Vm2/U2: 0.07–0.10

Loading coefficient ψ = Δh/U2²: 0.45–0.60

Slip factor σ: ~0.88–0.92 (backswept)

Exit metal angle β2 (relative): 25–35 deg

Bending safety: t typically 3–8 mm for small rotors; verify with stress calcs.

Rotational layout

1. Pick hub and tip radii: R1e (eye inlet), R2 (impeller tip).

2. Choose blade count Z such that pitch-to-thickness avoids blockage: solidity at mid-span S = chord/pitch ~0.8–1.2.

3. Set inlet metal angle β1 = atan(Vm1/U1) (for zero prewhirl), and exit metal angle β2 backswept 25–35 deg.

4. Use a logarithmic-spiral camber line from near-radial at the inlet to backswept at the exit.

Blade outline you can machine from a flat plate

1) Camber line as a logarithmic spiral

Use polar coordinates with the rotor center as origin.

Spiral: r(θ) = r₂ · exp[a·(θ − θ₂)]

Set the spiral tangent angle at exit equal to your backsweep: α_exit = 90° − β2.

For a log spiral, the tangent angle is constant and equals arctan(1/a).

So choose a = 1 / tan(α_exit).

Define the blade from θ = θ₁ at r = r₁ (near inlet radius) to θ = θ₂ at r = r₂ (impeller tip).

2) Thickness distribution (constant or simple airfoil)

Easiest: constant thickness t_b with rounded leading edge radius ~0.05·t_b.

Slightly better: a simple “pseudo-airfoil” thickness:

Half-thickness h(s) = t_max · 4·s·(1 − s), where s runs 0→1 along the camber length.

Create the pressure and suction edges by offsetting the camber line ±h(s) normal to the camber at each point.

3) Blade count and pitch

At radius r, pitch p = 2πr / Z.

Keep local solidity S = chord_normal_to_cam/p near 1 at mid-span to avoid over-diffusion.

Quick FileMaker-friendly point generator (returns XY points)

This generates a 2D blade polygon: camber via log spiral plus symmetric thickness. You can export the resulting points to CSV and import into CAD to make a DXF profile.

```

Let (

[

/ Inputs you set as fields or globals /

R1 = R1_inlet_m;

R2 = R2_tip_m;

Z = BladeCount;

beta2_deg = ExitMetalAngle_deg; / e.g. 30 /

tmax = BladeMaxThickness_m; / e.g. 0.002 /

npts = 100; / points along camber /

/ Derived spiral parameter for backsweep /

alpha_exit_deg = 90 • beta2_deg;

alpha = alpha_exit_deg Pi / 180;

a = 1 / Tan( alpha );

/ Start angle so that r(R1) matches the spiral at entrance /

theta2 = 0; / choose tip at theta2 = 0 /

theta1 = theta2 • ( 1/a ) Ln( R2 / R1 );

/ Build point list along camber and offset for thickness /

i = 0;

/ Accumulator for points as text lines: X Y /

points

```

Page Title

Flat-Plate Centrifugal Compressor Bucket for sCO2: A 2D Laser-Cut Design You Can CAM Today

Meta Description

Yes, you can build a centrifugal compressor rotor for supercritical CO2 from a flat plate. This article explains the tradeoffs, the recommended 2D blade geometry using a logarithmic spiral, and gives FileMaker-ready code to generate blade coordinates from temperature, pressure, RPM, pressure ratio, and your chosen rotor size.

Can a 2D, flat-plate compressor wheel work for sCO2?

Yes, with caveats. A conventional high-efficiency centrifugal impeller uses 3D blade sweep and twist to control incidence, Mach, and diffusion from hub to shroud. If you constrain yourself to a flat plate impeller with 2D blades:

It will work, especially for small sCO2 machines where diameters are modest and the fluid is dense.

Expect lower peak efficiency and a narrower surge margin versus a 3D impeller.

Keep backsweep at the exit and modest flow coefficient to avoid high relative Mach and separation.

The best 2D compromise is a backswept, constant-thickness blade whose camber line follows a logarithmic spiral. This gives a constant metal angle relative to the local radius, which is compatible with the quasi-2D velocity triangles of a radial compressor.

What to choose before you cut metal

Tie these to the sCO2 design point you already sized (from your earlier compressor calcs):

D2_m: impeller tip diameter from your head and RPM.

R1_m: inlet eye radius at the blade start. Use your eye tip diameter D1_tip from the Mach-limited inlet sizing.

beta_deg: target exit blade metal angle relative to the tangent (backswept). Typical 2D values for dense sCO2: 50 to 70 degrees.

Zb: blade count. Start with 12 to 16 for small rotors.

phi: flow coefficient at exit, keep 0.06 to 0.10 for a cautious 2D design.

t_mm: physical blade thickness to leave after cutting or milling. For a 2D plate, 1.5 to 3.0 mm is typical at small diameters.

npts: number of points along the blade centerline to export for CAM, e.g. 200.

Note on angle convention: beta_deg here is the blade metal angle at the exit, measured from the circumferential (tangential) direction. Backswept means beta_deg is a large angle (e.g., 60 deg), not radial.

Geometry choice: the logarithmic spiral

A blade camber line defined by a logarithmic spiral maintains a constant angle between the blade tangent and the local radius. That constant angle is your chosen blade metal angle beta_deg.

In polar form:

r goes from R1_m to R2_m = D2_m / 2

theta(r) = theta0 + k ln(r / R1_m)

with k = cot(beta_rad), where beta_rad = beta_deg pi / 180

The curve is then converted to XY for your CAM or laser.

For a flat plate, you can:

Machine or laser the centerline curve, then offset the toolpath by t_mm/2 to both sides in your CAM, or

Export two curves by shifting theta slightly at each radius to approximate constant thickness along the tangent. The simplest is to export the centerline and let CAM handle the offset.

Manufacturing and performance tips

Use a shroud if possible to control tip leakage.

Add a small leading-edge radius (0.2 to 0.5 mm) to soften incidence.

Keep surface finish smooth; sCO2 is dense and losses scale with roughness.

Start conservative on pressure ratio per stage; add a second stage if needed.

Validate with a static pressure tap at diffuser entry and monitor surge.

FileMaker Pro generator for a 2D blade centerline

This FileMaker calculation returns a CSV list of X,Y points for one blade centerline from R1_m to R2_m, plus rotated copies for the full blade count Zb. Paste into a Calculation field and output the result to a text field for DXF import or straight to CAM.

Inputs you provide as fields or globals

D2_m tip diameter in meters

R1_m inlet radius where the blade begins, meters

beta_deg blade metal angle at exit relative to tangent, degrees

Zb number of blades

npts number of points along the blade

theta0_deg starting angular index for blade 0, degrees, e.g. 0

t_mm blade thickness in millimeters if you want to offset later in CAM

You may also include your thermodynamic sizing in the same record to document T1, P1, PR, N_rpm; they do not enter the pure geometry below.

```

Let(

[

pi = 3.14159265358979;

D2 = D2_m;

R1 = R1_m;

R2 = D2 / 2;

beta = beta_deg;

Z = Zb;

Npts = npts;

theta0 = theta0_deg;

// Log spiral parameter: k = cot(beta)

beta_rad = beta pi / 180;

k = Cos(beta_rad) / Sin(beta_rad);

// Build centerline points for one blade in polar, then to XY

// r_i = R1 (R2/R1)^(i/(Npts-1))

// theta_i = theta0 + k ln(r_i / R1) in radians

// Convert to degrees for FileMaker trig

MakePoint =

Let([

i = GetAsNumber( GetValue ( $$i ; 1 ) );

r = R1 Power( R2 / R1 ; i / (Npts • 1) );

theta_rad = (theta0 pi / 180) + k Ln( r / R1 );

theta_deg = theta_rad 180 / pi;

x = r Cos( theta_deg );

y = r Sin( theta_deg )

];

List( x ; y )

);

// Generate points for blade 0

PointsOneBlade =

Let([

$$i = 0;

acc = ;

j = 0

];

While (

j < Npts ;

$$i = j ;

acc = List( acc ; Evaluate( MakePoint ) ) ;

j = j + 1

);

acc

);

// Rotate the one-blade list to create Z blades

// Rotation angle per blade = 360 / Z

rot_step = 360 / Z;

RotatePoint =

Let([

x0 = GetAsNumber( GetValue( ~pt ; 1 ) );

y0 = GetAsNumber( GetValue( ~pt ; 2 ) );

ang = rot_deg pi / 180;

xr = x0 Cos( rot_deg ) • y0 Sin( rot_deg );

yr = x0 Sin( rot_deg ) + y0 Cos( rot_deg )

];

List( xr ; yr )

);

// Assemble CSV text: blade,index,x,y

BuildCSV =

Let([

b = 0;

csv =

];

While (

b < Z ;

Let([

rot_deg = b rot_step;

row = 1;

bladeCSV = ;

countPts = ValueCount( PointsOneBlade )

];

While (

row <= countPts ;

~pt = GetValue( PointsOneBlade ; row );

xy = Evaluate( Substitute( RotatePoint ; rot_deg ; rot_deg ) );

x = GetValue( xy ; 1 );

y = GetValue( xy ; 2 );

bladeCSV = List( bladeCSV ; b & , & row & , & x & , & y );

row = row + 1

);

csv = List( csv ; bladeCSV );

b = b + 1

);

csv

)

];

Substitute( BuildCSV ; Char(13) ; Char(10) )

)

```

What you get

A CSV where each line is

`blade_index,point_index,x_meters,y_meters`

Import to CAD, generate offsets of plus or minus t_mm/2000 meters to produce the two cut paths around the centerline, or simply CAM-offset by half the desired thickness.

How to choose beta and R1 quickly from your sCO2 point

If your earlier compressor sizing gave exit metal angle beta2_deg and eye diameter D1_tip, reuse those.

Set beta_deg = beta2_deg.

Set R1_m = D1_tip / 2.

Keep Zb such that the solidity at mid-span is about 1 to 1.5 for a 2D plate. If your blade spacing at radius r is s = 2 pi r / Zb, target chord c roughly similar to s to keep diffusion gentle.

Expected performance vs a 3D impeller

Peak adiabatic efficiency typically 3 to 8 points lower than a well-designed 3D impeller.

Slightly higher noise and narrower stable flow range.

For dense sCO2 with modest pressure ratio per stage, the penalty is often acceptable for rapid prototyping or low-cost builds.

Next steps

1. Run the FileMaker calc to generate the CSV, import to CAD, and offset for thickness.

2. Waterjet or laser the blank and finish with a light deburr and leading-edge radius.

3. Pair with a simple vaneless diffuser of width about 8 to 12 percent of D2 and radius ratio 1.2 to 1.4 as a starting point.

4. Test with conservative pressure ratio, log static at diffuser inlet, iterate beta and Zb as needed.

This approach lets you go from your sCO2 design point to a cuttable, 2D impeller in a single session, accepting known tradeoffs while keeping the geometry manufacturable by flat-plate methods.

-----

Let(

[

pi = 3.14159265358979;

D2 = D2_m;

R1 = R1_m;

R2 = D2 / 2;

beta = beta_deg;

Z = Zb;

Npts = npts;

theta0 = theta0_deg;

// Log spiral parameter: k = cot(beta)

beta_rad = beta * pi / 180;

k = Cos(beta_rad) / Sin(beta_rad);

// Build centerline points for one blade in polar, then to XY

// r_i = R1 * (R2/R1)^(i/(Npts-1))

// theta_i = theta0 + k * ln(r_i / R1) in radians

// Convert to degrees for FileMaker trig

MakePoint =

"Let([

i = GetAsNumber( GetValue ( $$i ; 1 ) );

r = R1 * Power( R2 / R1 ; i / (Npts - 1) );

theta_rad = (theta0 * pi / 180) + k * Ln( r / R1 );

theta_deg = theta_rad * 180 / pi;

x = r * Cos( theta_deg );

y = r * Sin( theta_deg )

];

List( x ; y )

)";

// Generate points for blade 0

PointsOneBlade =

Let([

$$i = "0";

acc = "";

j = 0

];

While (

j < Npts ;

$$i = j ;

acc = List( acc ; Evaluate( MakePoint ) ) ;

j = j + 1

);

acc

);

// Rotate the one-blade list to create Z blades

// Rotation angle per blade = 360 / Z

rot_step = 360 / Z;

RotatePoint =

"Let([

x0 = GetAsNumber( GetValue( ~pt ; 1 ) );

y0 = GetAsNumber( GetValue( ~pt ; 2 ) );

ang = rot_deg * pi / 180;

xr = x0 * Cos( rot_deg ) - y0 * Sin( rot_deg );

yr = x0 * Sin( rot_deg ) + y0 * Cos( rot_deg )

];

List( xr ; yr )

)";

// Assemble CSV text: blade,index,x,y

BuildCSV =

Let([

b = 0;

csv = ""

];

While (

b < Z ;

Let([

rot_deg = b * rot_step;

row = 1;

bladeCSV = "";

countPts = ValueCount( PointsOneBlade )

];

While (

row <= countPts ;

~pt = GetValue( PointsOneBlade ; row );

xy = Evaluate( Substitute( RotatePoint ; "rot_deg" ; rot_deg ) );

x = GetValue( xy ; 1 );

y = GetValue( xy ; 2 );

bladeCSV = List( bladeCSV ; b & "," & row & "," & x & "," & y );

row = row + 1

);

csv = List( csv ; bladeCSV );

b = b + 1

);

csv

)

];

Substitute( BuildCSV ; Char(13) ; Char(10) )

)


Overview

You can build a 2D, flat-plate radial-inflow turbine for supercritical CO2 (sCO2) as a fast, low-cost prototype. Performance will be below that of a fully 3D radial turbine, but for moderate pressure ratio and dense sCO2 it is practical. The strategy mirrors the 2D compressor approach: use a logarithmic-spiral camber line that maintains a constant metal angle, keep relative Mach under control, and match flow area to mass flow at the inlet and exit radii.

What you will define:

Turbine pressure ratio per stage and turbine inlet total temperature.

Tip speed from specific work and loading coefficient.

Inlet radius and blade height from mass flow and density.

Blade metal angles from velocity triangles with near-zero exit swirl.

A 2D blade outline in XY for laser cutting or 2.5D machining.

Target application window

sCO2 radial-inflow turbine, single stage, moderate pressure ratio about 2.0 to 3.5.

Inlet total temperature typically 400 to 700 C for prototypes.

Tip relative Mach target Mrel2 less than about 1.2.

Flat plate thickness t typically 2 to 6 mm depending on diameter and stress.

Key design coefficients

Turbine isentropic efficiency, eta_t: 0.80 to 0.90

Stage loading coefficient, psi_t = delta_h0 over U2^2: 1.0 to 1.6

Flow coefficient at rotor inlet, phi_t = Vm2 over U2: 0.15 to 0.25

Radius ratio rr = R3 over R2: 0.35 to 0.50

Exit swirl: target near zero absolute tangential velocity at exit

First-cut sizing relations

Inputs you should have from your cycle point and property call:

T3_K turbine inlet total temperature, K

P3_Pa turbine inlet total pressure, Pa

PR_t turbine total-to-static pressure ratio P3 over P4

N_rpm shaft speed, rpm

mdot_kg_s mass flow, kg s-1

cp3_J_kgK, k3, Z3, rho2_kg_m3, rho3_kg_m3 sCO2 properties at rotor inlet and exit planes

Derived sizing:

1. Isentropic head and actual work

Hs = cp3T3(1 − PR_t^((k3−1)/k3))

delta_h0 = eta_tHs

2. Tip speed and diameter

U2 = sqrt(delta_h0/psi_t)

D2 = 60U2/(piN_rpm)

3. Meridional velocity and inlet blade height

Vm2 = phi_tU2

mdot = rho2(2piR2b2)Vm2 with R2 = D2/2

Solve for b2

4. Inlet velocity triangles and metal angles

From Euler with near-zero exit swirl: Vw2 = delta_h0/U2

Absolute inlet angle alpha2 = atan(Vm2/Vw2)

Relative tangential Wt2 = U2 − Vw2

Relative inlet angle beta2 = atan(Vm2/Wt2)

5. Exit radius and height

D3 = rrD2

If Vm3 approx Vm2 initially, b3 = mdot/(rho32piR3Vm3)

6. Mach check at inlet (relative)

a2 = sqrt(k3R_CO2T3/Z3) with R_CO2 = 188.9 J kg-1 K-1

W2 = sqrt((U2 − Vw2)^2 + Vm2^2)

Mrel2 = W2/a2 target < 1.2

2D blade geometry you can machine

Use a logarithmic spiral for the camber line so the metal angle is constant along the span (appropriate for a flat plate):

Choose beta2_deg = relative inlet metal angle at the rotor inlet from the velocity triangle above.

The blade tangent makes angle beta2 with the local circumferential direction.

Spiral in polar form from rotor inlet radius R2 to near mid-chord; you will place the rotor inlet at R2 = D2/2:

k_spiral = cot(beta2) = cos(beta2)/sin(beta2)

theta(r) = theta0 + k_spiralln(r/R_ref) with R_ref set so that theta(R2) = theta2

To build the blade centerline:

March r from R2 down to a chosen inner radius Rm where you end the metal for your plate.

Compute theta(r) as above.

Convert to x = rcos(theta), y = rsin(theta).

Repeat the curve for each blade by adding a rotation of 360/Zb.

Thickness: for a flat plate, use CAM offsets by t/2 to each side of the centerline, or export two offsets in CAD.

FileMaker Pro code to generate XY points for a 2D turbine blade

The calculation below outputs CSV lines:

`blade_index,point_index,x_meters,y_meters`

Inputs as fields or globals

D2_m rotor inlet diameter at the tip, meters

Rm_m inner metal radius where the blade ends, meters choose around rrD2_m/2 or slightly larger

Zb number of blades

beta2_deg rotor inlet relative metal angle in degrees from the velocity triangle

npts number of points along the centerline per blade

theta0_deg starting angular index for blade 0, degrees, e.g., 0

```

Let(

[

pi = 3.14159265358979;

// Geometry inputs

D2 = D2_m;

R2 = D2 / 2; // rotor inlet radius

Rm = Rm_m; // inner blade end radius

Z = Zb;

Npts = npts;

theta0 = theta0_deg;

// Spiral parameter: constant metal angle beta2 relative to circumferential direction

beta = beta2_deg pi / 180;

k = Cos(beta) / Sin(beta); // cot(beta)

// Reference radius so that theta(R2) = theta0

// theta(r) = theta0 + k ln(r / R2)

r_min = Rm;

r_max = R2;

// Build one blade centerline from r = R2 down to r = Rm

MakePoint =

Let([

i = GetAsNumber( GetValue ( $$i ; 1 ) );

s = i / (Npts • 1);

r = r_max • s (r_max • r_min);

theta_rad = (theta0 pi / 180) + k Ln( r / r_max );

theta_deg = theta_rad 180 / pi;

x = r Cos( theta_deg );

y = r Sin( theta_deg )

];

List( x ; y )

);

// Generate points for blade 0

PointsOneBlade =

Let([

$$i = 0;

acc = ;

j = 0

];

While (

j < Npts ;

$$i = j ;

acc = List( acc ; Evaluate( MakePoint ) ) ;

j = j + 1

);

acc

);

// Rotation increment per blade

rot_step = 360 / Z;

// Rotate each XY point by rot_deg

RotatePoint =

Let([

x0 = GetAsNumber( GetValue( ~pt ; 1 ) );

y0 = GetAsNumber( GetValue( ~pt ; 2 ) );

ang = rot_deg pi / 180;

xr = x0 Cos( rot_deg ) • y0 Sin( rot_deg );

yr = x0 Sin( rot_deg ) + y0 Cos( rot_deg )

];

List( xr ; yr )

);

// Assemble CSV for all blades

BuildCSV =

Let([

b = 0;

csv =

];

While (

b < Z ;

Let([

rot_deg = b rot_step;

row = 1;

bladeCSV = ;

countPts = ValueCount( PointsOneBlade )

];

While (

row <= countPts ;

~pt = GetValue( PointsOneBlade ; row );

xy = Evaluate( Substitute( RotatePoint ; rot_deg ; rot_deg ) );

x = GetValue( xy ; 1 );

y = GetValue( xy ; 2 );

bladeCSV = List( bladeCSV ; b & , & row & , & x & , & y );

row = row + 1

);

csv = List( csv ; bladeCSV );

b = b + 1

);

csv

)

];

Substitute( BuildCSV ; Char(13) ; Char(10) )

)

```

How to use

1. Compute your velocity triangle to get beta2_deg using your cycle point:

From delta_h0 and U2, get Vw2 = delta_h0/U2.

With phi_t, Vm2 = phi_tU2.

Then beta2 = atan(Vm2/(U2 − Vw2)) in degrees.

2. Set D2_m, Rm_m, Zb, beta2_deg, npts, theta0_deg.

3. Evaluate the calc and export the CSV to CAD.

4. Offset the centerline by plus and minus t/2 in CAM to cut the plate.

Sanity checks and tips

Relative Mach at inlet Mrel2 = W2/a2 less than about 1.2 at design. If too high, reduce psi_t or increase diameter D2.

Keep blade thickness consistent with allowable stress; a flat plate has no 3D stacking strength.

If the flow coefficient phi_t is too small, the blade height may become tiny and sensitive to tolerances.

Use a simple vaneless diffuser after the rotor with radius ratio 1.2 to 1.4 to start, then iterate.

Expect turbine adiabatic efficiency several points below a 3D blade; use this mainly for prototyping or low cost demonstrators.

What this delivers

A coherent first-cut radial-inflow rotor geometry for sCO2 with all dimensions in plane, ready for DXF and laser or waterjet cutting.

A FileMaker generator that outputs all blade centerlines as XY for CAM, parameterized by your cycle point and chosen blade count.

A practical foundation you can iterate by adjusting beta2, D2, Rm, and Zb to hit your mass-flow, Mach, and specific work targets.

-----

Let(

[

pi = 3.14159265358979;

// Geometry inputs

D2 = D2_m;

R2 = D2 / 2; // rotor inlet radius

Rm = Rm_m; // inner blade end radius

Z = Zb;

Npts = npts;

theta0 = theta0_deg;

// Spiral parameter: constant metal angle beta2 relative to circumferential direction

beta = beta2_deg * pi / 180;

k = Cos(beta) / Sin(beta); // cot(beta)

// Reference radius so that theta(R2) = theta0

// theta(r) = theta0 + k * ln(r / R2)

r_min = Rm;

r_max = R2;

// Build one blade centerline from r = R2 down to r = Rm

MakePoint =

"Let([

i = GetAsNumber( GetValue ( $$i ; 1 ) );

s = i / (Npts - 1);

r = r_max - s * (r_max - r_min);

theta_rad = (theta0 * pi / 180) + k * Ln( r / r_max );

theta_deg = theta_rad * 180 / pi;

x = r * Cos( theta_deg );

y = r * Sin( theta_deg )

];

List( x ; y )

)";

// Generate points for blade 0

PointsOneBlade =

Let([

$$i = "0";

acc = "";

j = 0

];

While (

j < Npts ;

$$i = j ;

acc = List( acc ; Evaluate( MakePoint ) ) ;

j = j + 1

);

acc

);

// Rotation increment per blade

rot_step = 360 / Z;

// Rotate each XY point by rot_deg

RotatePoint =

"Let([

x0 = GetAsNumber( GetValue( ~pt ; 1 ) );

y0 = GetAsNumber( GetValue( ~pt ; 2 ) );

ang = rot_deg * pi / 180;

xr = x0 * Cos( rot_deg ) - y0 * Sin( rot_deg );

yr = x0 * Sin( rot_deg ) + y0 * Cos( rot_deg )

];

List( xr ; yr )

)";

// Assemble CSV for all blades

BuildCSV =

Let([

b = 0;

csv = ""

];

While (

b < Z ;

Let([

rot_deg = b * rot_step;

row = 1;

bladeCSV = "";

countPts = ValueCount( PointsOneBlade )

];

While (

row <= countPts ;

~pt = GetValue( PointsOneBlade ; row );

xy = Evaluate( Substitute( RotatePoint ; "rot_deg" ; rot_deg ) );

x = GetValue( xy ; 1 );

y = GetValue( xy ; 2 );

bladeCSV = List( bladeCSV ; b & "," & row & "," & x & "," & y );

row = row + 1

);

csv = List( csv ; bladeCSV );

b = b + 1

);

csv

)

];

Substitute( BuildCSV ; Char(13) ; Char(10) )

)


INFINITY TURBINE | SALES | DESIGN | DEVELOPMENT | ANALYSIS CONSULTING

TEL: +1-608-238-6001 (Chicago Time Zone )

Email: greg@infinityturbine.com

40 MW to 100 MW Using IT1000 Supercritical CO2 Gas Turbine Generator Silent Prime Power 1 MW (natural gas, solar thermal, thermal battery heat) ... More Info

Developing Rack Prime Power DC for Server Racks Sidecar 48V to 800V DC plus DC buffer for hyperscalers... More Info

The Shift from AC to DC Power Production for AI Data Centers AI data centers are pushing electrical infrastructure to its limits. The traditional AC power chain is no longer optimal for GPU-driven workloads. A DC-native architecture using Infinity Turbine’s Cluster Mesh system offers a path to higher efficiency, lower costs, and scalable modular power—potentially saving tens of millions per year at hyperscale... More Info

SMR and Cluster Mesh Supercritical CO2 Power System Pairing Cluster Mesh Supercritical CO2 Power System with Small Modular Reactors enables hyperscalers to convert high-grade nuclear heat into ultra-efficient, dispatchable power with a compact, modular footprint tailored for AI-scale demand. More Info

ORC and Products Index Infinity Turbine ORC Index... More Info

________________________________________________________________________________

CONTACT TEL: +1-608-238-6001 (Chicago Time Zone USA) Email: greg@infinityturbine.com (Standard Web Page) | PDF