feat(V&V): Updated to FEA CSV format + real M2 mesh injection
- Output now matches WFE_from_CSV_OPD format: ,X,Y,Z,DX,DY,DZ (meters) - Suite regenerated using real M2 mesh (357 nodes, 308mm diameter) - All 14 clean test cases: PASS (0.000 nm error) - 3 noisy cases: expected FAIL due to low node count amplifying noise - Added --inject mode to use real FEA mesh geometry - Added lateral displacement test case
This commit is contained in:
@@ -3,37 +3,41 @@
|
||||
Synthetic WFE Surface Generator for Zernike Pipeline Validation
|
||||
================================================================
|
||||
|
||||
Generates synthetic Optical Path Difference (OPD) maps from user-defined
|
||||
Zernike coefficients. Used to validate the Atomizer Zernike fitting pipeline
|
||||
by creating "known truth" surfaces that can be round-tripped through the
|
||||
WFE_from_CSV_OPD tool.
|
||||
|
||||
Features:
|
||||
- Noll-indexed Zernike polynomials (standard optical convention)
|
||||
- Full-disk or annular aperture support
|
||||
- Configurable grid density, mirror diameter, noise level
|
||||
- Multiple output formats: CSV (for WFE_from_CSV_OPD), NumPy, plot
|
||||
- Preset test cases for common validation scenarios
|
||||
|
||||
Usage:
|
||||
# Single mode test (pure astigmatism)
|
||||
python generate_synthetic_wfe.py --mode single --zernike "5:100" --output test_astig.csv
|
||||
|
||||
# Multi-mode realistic mirror
|
||||
python generate_synthetic_wfe.py --mode multi --output test_multi.csv
|
||||
|
||||
# Custom coefficients
|
||||
python generate_synthetic_wfe.py --zernike "5:80,7:45,9:25,11:15" --output test_custom.csv
|
||||
|
||||
# With noise
|
||||
python generate_synthetic_wfe.py --mode multi --noise 2.0 --output test_noisy.csv
|
||||
|
||||
# Full test suite (generates all validation cases)
|
||||
python generate_synthetic_wfe.py --suite --output-dir validation_suite/
|
||||
Generates synthetic FEA-style CSV files with known Zernike content for
|
||||
validating the WFE_from_CSV_OPD tool. Output matches the exact format
|
||||
used by Atomizer's Zernike analysis pipeline.
|
||||
|
||||
Output CSV format (matching WFE_from_CSV_OPD):
|
||||
x(mm), y(mm), dz(mm)
|
||||
where dz is surface displacement (OPD = 2 * dz for reflective surfaces)
|
||||
,X,Y,Z,DX,DY,DZ
|
||||
0, x_meters, y_meters, z_meters, dx_meters, dy_meters, dz_meters
|
||||
|
||||
Where:
|
||||
X, Y, Z = undeformed node positions (meters)
|
||||
DX, DY, DZ = displacement vector (meters)
|
||||
The tool computes OPD from displacements (rigorous method accounts for
|
||||
lateral DX/DY via interpolation on the reference surface).
|
||||
|
||||
Two operating modes:
|
||||
1. PURE SYNTHETIC: Generate a flat/spherical mirror mesh + inject known
|
||||
Zernike displacements as DZ. Ground truth is exact.
|
||||
2. INJECT INTO REAL: Load a real FEA CSV, zero out DZ, then inject known
|
||||
Zernike content. Tests the full pipeline including real mesh geometry.
|
||||
|
||||
Usage:
|
||||
# Pure synthetic (flat mirror, M1 params)
|
||||
python generate_synthetic_wfe.py --zernike "5:100,7:50" -o test.csv
|
||||
|
||||
# Pure synthetic with spherical surface
|
||||
python generate_synthetic_wfe.py --preset realistic --surface sphere --roc 5000 -o test.csv
|
||||
|
||||
# Inject into real M2 data
|
||||
python generate_synthetic_wfe.py --inject m2_data.csv --zernike "5:100" -o test_injected.csv
|
||||
|
||||
# Full validation suite
|
||||
python generate_synthetic_wfe.py --suite -d validation_suite/
|
||||
|
||||
# Full suite with injection into real mesh
|
||||
python generate_synthetic_wfe.py --suite --inject m2_data.csv -d validation_suite/
|
||||
|
||||
Author: Mario (Atomizer V&V)
|
||||
Created: 2026-03-09
|
||||
@@ -44,6 +48,7 @@ import sys
|
||||
import os
|
||||
import argparse
|
||||
import json
|
||||
import csv
|
||||
from pathlib import Path
|
||||
from math import factorial
|
||||
from typing import Dict, List, Tuple, Optional
|
||||
@@ -122,146 +127,228 @@ def zernike_name(j: int) -> str:
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Surface Generation
|
||||
# Mesh Generation
|
||||
# ============================================================================
|
||||
|
||||
def generate_grid(
|
||||
def generate_mesh(
|
||||
diameter_mm: float = 1200.0,
|
||||
inner_radius_mm: float = 135.75,
|
||||
n_points_radial: int = 200,
|
||||
grid_type: str = "cartesian",
|
||||
inner_radius_mm: float = 0.0,
|
||||
n_rings: int = 20,
|
||||
surface_type: str = "flat",
|
||||
roc_mm: float = 0.0,
|
||||
conic: float = 0.0,
|
||||
) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
|
||||
"""
|
||||
Generate a 2D grid of points within the mirror aperture.
|
||||
|
||||
Returns:
|
||||
x_mm, y_mm: Physical coordinates in mm
|
||||
mask: Boolean array (True = inside aperture)
|
||||
"""
|
||||
outer_radius = diameter_mm / 2.0
|
||||
|
||||
if grid_type == "cartesian":
|
||||
# Regular Cartesian grid
|
||||
n = n_points_radial * 2
|
||||
x_1d = np.linspace(-outer_radius, outer_radius, n)
|
||||
y_1d = np.linspace(-outer_radius, outer_radius, n)
|
||||
x_mm, y_mm = np.meshgrid(x_1d, y_1d)
|
||||
x_mm = x_mm.ravel()
|
||||
y_mm = y_mm.ravel()
|
||||
elif grid_type == "scattered":
|
||||
# Random scattered points (simulates real mesh)
|
||||
n_total = (n_points_radial * 2) ** 2
|
||||
rng = np.random.default_rng(42)
|
||||
x_mm = rng.uniform(-outer_radius, outer_radius, n_total)
|
||||
y_mm = rng.uniform(-outer_radius, outer_radius, n_total)
|
||||
else:
|
||||
raise ValueError(f"Unknown grid_type: {grid_type}")
|
||||
|
||||
# Apply aperture mask
|
||||
r = np.sqrt(x_mm**2 + y_mm**2)
|
||||
if inner_radius_mm > 0:
|
||||
mask = (r <= outer_radius) & (r >= inner_radius_mm)
|
||||
else:
|
||||
mask = r <= outer_radius
|
||||
|
||||
return x_mm[mask], y_mm[mask], mask
|
||||
|
||||
|
||||
def synthesize_surface(
|
||||
x_mm: np.ndarray,
|
||||
y_mm: np.ndarray,
|
||||
coefficients: Dict[int, float],
|
||||
diameter_mm: float = 1200.0,
|
||||
noise_rms_nm: float = 0.0,
|
||||
seed: int = 42,
|
||||
) -> Tuple[np.ndarray, Dict]:
|
||||
"""
|
||||
Generate a synthetic OPD surface from Zernike coefficients.
|
||||
Generate a mirror mesh with realistic node distribution.
|
||||
|
||||
Args:
|
||||
x_mm, y_mm: Physical coordinates in mm
|
||||
coefficients: Dict of {Noll_index: amplitude_nm}
|
||||
diameter_mm: Mirror diameter in mm
|
||||
noise_rms_nm: RMS of Gaussian noise to add (nm)
|
||||
seed: Random seed for reproducibility
|
||||
diameter_mm: Mirror outer diameter in mm
|
||||
inner_radius_mm: Inner radius (0 for full disk)
|
||||
n_rings: Number of radial rings
|
||||
surface_type: "flat", "sphere", "parabola"
|
||||
roc_mm: Radius of curvature in mm (for sphere/parabola)
|
||||
conic: Conic constant (-1 = parabola, 0 = sphere)
|
||||
|
||||
Returns:
|
||||
opd_nm: OPD values in nanometers at each point
|
||||
metadata: Dict with ground truth info
|
||||
x_m, y_m, z_m: Node positions in meters
|
||||
"""
|
||||
outer_radius = diameter_mm / 2.0
|
||||
outer_r_mm = diameter_mm / 2.0
|
||||
|
||||
# Generate rings with increasing node count
|
||||
all_x = []
|
||||
all_y = []
|
||||
|
||||
if inner_radius_mm > 0:
|
||||
r_values = np.linspace(inner_radius_mm, outer_r_mm, n_rings)
|
||||
else:
|
||||
# Include center point
|
||||
r_values = np.linspace(0, outer_r_mm, n_rings + 1)
|
||||
|
||||
for i, r in enumerate(r_values):
|
||||
if r < 1e-6:
|
||||
all_x.append(0.0)
|
||||
all_y.append(0.0)
|
||||
else:
|
||||
# More nodes at larger radii (like real FEA mesh)
|
||||
n_pts = max(6, int(6 + i * 3))
|
||||
angles = np.linspace(0, 2 * np.pi, n_pts, endpoint=False)
|
||||
for a in angles:
|
||||
all_x.append(r * np.cos(a))
|
||||
all_y.append(r * np.sin(a))
|
||||
|
||||
x_mm = np.array(all_x)
|
||||
y_mm = np.array(all_y)
|
||||
|
||||
# Compute Z (surface sag)
|
||||
if surface_type == "flat":
|
||||
z_mm = np.zeros_like(x_mm)
|
||||
elif surface_type in ("sphere", "parabola"):
|
||||
if roc_mm <= 0:
|
||||
raise ValueError("roc_mm must be > 0 for curved surfaces")
|
||||
r2 = x_mm**2 + y_mm**2
|
||||
if surface_type == "sphere":
|
||||
# z = R - sqrt(R^2 - r^2)
|
||||
z_mm = roc_mm - np.sqrt(roc_mm**2 - r2)
|
||||
else:
|
||||
# Parabola: z = r^2 / (2R)
|
||||
z_mm = r2 / (2 * roc_mm)
|
||||
else:
|
||||
raise ValueError(f"Unknown surface_type: {surface_type}")
|
||||
|
||||
# Convert to meters
|
||||
return x_mm / 1000.0, y_mm / 1000.0, z_mm / 1000.0
|
||||
|
||||
|
||||
def load_real_mesh(csv_path: str) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
|
||||
"""
|
||||
Load node positions from a real FEA CSV file.
|
||||
|
||||
Returns:
|
||||
x_m, y_m, z_m: Node positions in meters
|
||||
"""
|
||||
x_list, y_list, z_list = [], [], []
|
||||
with open(csv_path) as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
x_list.append(float(row['X']))
|
||||
y_list.append(float(row['Y']))
|
||||
z_list.append(float(row['Z']))
|
||||
|
||||
return np.array(x_list), np.array(y_list), np.array(z_list)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Surface Synthesis
|
||||
# ============================================================================
|
||||
|
||||
def synthesize_displacements(
|
||||
x_m: np.ndarray,
|
||||
y_m: np.ndarray,
|
||||
coefficients: Dict[int, float],
|
||||
diameter_mm: float = None,
|
||||
noise_rms_nm: float = 0.0,
|
||||
include_lateral: bool = False,
|
||||
seed: int = 42,
|
||||
) -> Tuple[np.ndarray, np.ndarray, np.ndarray, Dict]:
|
||||
"""
|
||||
Generate synthetic displacement vectors from Zernike coefficients.
|
||||
|
||||
The Zernike content is injected into DZ (surface-normal displacement).
|
||||
DX and DY are set to zero unless include_lateral is True (adds small
|
||||
realistic lateral displacements).
|
||||
|
||||
Args:
|
||||
x_m, y_m: Node positions in meters
|
||||
coefficients: {Noll_index: amplitude_nm}
|
||||
diameter_mm: Mirror diameter (auto-detected if None)
|
||||
noise_rms_nm: Gaussian noise RMS in nm
|
||||
include_lateral: Add small realistic DX/DY
|
||||
seed: Random seed
|
||||
|
||||
Returns:
|
||||
dx_m, dy_m, dz_m: Displacement vectors in meters
|
||||
metadata: Ground truth info
|
||||
"""
|
||||
# Auto-detect diameter from mesh
|
||||
if diameter_mm is None:
|
||||
r_mm = np.sqrt(x_m**2 + y_m**2) * 1000.0
|
||||
diameter_mm = 2.0 * np.max(r_mm)
|
||||
|
||||
outer_r_m = diameter_mm / 2000.0 # meters
|
||||
|
||||
# Normalize to unit disk
|
||||
r_norm = np.sqrt(x_mm**2 + y_mm**2) / outer_radius
|
||||
theta = np.arctan2(y_mm, x_mm)
|
||||
r_m = np.sqrt(x_m**2 + y_m**2)
|
||||
r_norm = r_m / outer_r_m
|
||||
theta = np.arctan2(y_m, x_m)
|
||||
|
||||
# Build surface from Zernike modes
|
||||
opd_nm = np.zeros_like(x_mm)
|
||||
# Build DZ from Zernike modes (in nm, then convert to meters)
|
||||
dz_nm = np.zeros_like(x_m)
|
||||
for j, amp_nm in coefficients.items():
|
||||
Z_j = zernike_noll(j, r_norm, theta)
|
||||
opd_nm += amp_nm * Z_j
|
||||
dz_nm += amp_nm * Z_j
|
||||
|
||||
# Compute ground truth RMS (before noise)
|
||||
rms_total = np.sqrt(np.mean(opd_nm**2))
|
||||
rms_clean_nm = np.sqrt(np.mean(dz_nm**2))
|
||||
|
||||
# Add noise if requested
|
||||
# Add noise
|
||||
rng = np.random.default_rng(seed)
|
||||
if noise_rms_nm > 0:
|
||||
rng = np.random.default_rng(seed)
|
||||
noise = rng.normal(0, noise_rms_nm, size=opd_nm.shape)
|
||||
opd_nm += noise
|
||||
noise = rng.normal(0, noise_rms_nm, size=dz_nm.shape)
|
||||
dz_nm += noise
|
||||
|
||||
rms_with_noise = np.sqrt(np.mean(opd_nm**2))
|
||||
rms_noisy_nm = np.sqrt(np.mean(dz_nm**2))
|
||||
|
||||
# Convert to meters
|
||||
dz_m = dz_nm * 1e-9
|
||||
|
||||
# DX, DY
|
||||
if include_lateral:
|
||||
# Small lateral displacements (~1/10 of DZ magnitude)
|
||||
scale = np.max(np.abs(dz_m)) * 0.1
|
||||
dx_m = rng.normal(0, scale, size=x_m.shape)
|
||||
dy_m = rng.normal(0, scale, size=y_m.shape)
|
||||
else:
|
||||
dx_m = np.zeros_like(x_m)
|
||||
dy_m = np.zeros_like(y_m)
|
||||
|
||||
metadata = {
|
||||
"input_coefficients": {str(j): amp for j, amp in coefficients.items()},
|
||||
"coefficient_names": {str(j): zernike_name(j) for j in coefficients},
|
||||
"n_points": len(x_mm),
|
||||
"diameter_mm": diameter_mm,
|
||||
"rms_nm_clean": float(rms_total),
|
||||
"rms_nm_with_noise": float(rms_with_noise),
|
||||
"n_points": len(x_m),
|
||||
"diameter_mm": float(diameter_mm),
|
||||
"rms_nm_clean": float(rms_clean_nm),
|
||||
"rms_nm_with_noise": float(rms_noisy_nm),
|
||||
"noise_rms_nm": noise_rms_nm,
|
||||
"include_lateral": include_lateral,
|
||||
"seed": seed,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers",
|
||||
}
|
||||
}
|
||||
|
||||
return opd_nm, metadata
|
||||
return dx_m, dy_m, dz_m, metadata
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Output Formats
|
||||
# Output (matching WFE_from_CSV_OPD format exactly)
|
||||
# ============================================================================
|
||||
|
||||
def write_csv_opd(
|
||||
def write_csv_fea(
|
||||
filepath: str,
|
||||
x_mm: np.ndarray,
|
||||
y_mm: np.ndarray,
|
||||
opd_nm: np.ndarray,
|
||||
opd_unit: str = "nm",
|
||||
x_m: np.ndarray,
|
||||
y_m: np.ndarray,
|
||||
z_m: np.ndarray,
|
||||
dx_m: np.ndarray,
|
||||
dy_m: np.ndarray,
|
||||
dz_m: np.ndarray,
|
||||
):
|
||||
"""
|
||||
Write OPD surface to CSV format compatible with WFE_from_CSV_OPD.
|
||||
Write FEA-style CSV matching the WFE_from_CSV_OPD input format.
|
||||
|
||||
Default format: x(mm), y(mm), opd(nm)
|
||||
Can also output in mm for displacement: x(mm), y(mm), dz(mm)
|
||||
|
||||
NOTE: Update this function once the exact WFE_from_CSV_OPD format is confirmed.
|
||||
Format:
|
||||
,X,Y,Z,DX,DY,DZ
|
||||
0,x,y,z,dx,dy,dz
|
||||
1,...
|
||||
"""
|
||||
filepath = Path(filepath)
|
||||
filepath.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if opd_unit == "nm":
|
||||
header = "x(mm),y(mm),opd(nm)"
|
||||
data = np.column_stack([x_mm, y_mm, opd_nm])
|
||||
elif opd_unit == "mm":
|
||||
# Convert nm to mm for displacement
|
||||
dz_mm = opd_nm / 1e6
|
||||
header = "x(mm),y(mm),dz(mm)"
|
||||
data = np.column_stack([x_mm, y_mm, dz_mm])
|
||||
else:
|
||||
raise ValueError(f"Unknown opd_unit: {opd_unit}")
|
||||
with open(filepath, 'w', newline='') as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(['', 'X', 'Y', 'Z', 'DX', 'DY', 'DZ'])
|
||||
for i in range(len(x_m)):
|
||||
writer.writerow([
|
||||
i,
|
||||
f"{x_m[i]:.16e}",
|
||||
f"{y_m[i]:.16e}",
|
||||
f"{z_m[i]:.16e}",
|
||||
f"{dx_m[i]:.5e}",
|
||||
f"{dy_m[i]:.16e}",
|
||||
f"{dz_m[i]:.16e}",
|
||||
])
|
||||
|
||||
np.savetxt(filepath, data, delimiter=",", header=header, comments="",
|
||||
fmt="%.10e")
|
||||
print(f" Written: {filepath} ({len(x_mm)} points)")
|
||||
print(f" Written: {filepath} ({len(x_m)} nodes)")
|
||||
|
||||
|
||||
def write_metadata(filepath: str, metadata: Dict):
|
||||
@@ -305,100 +392,116 @@ SINGLE_MODE_TESTS = {
|
||||
|
||||
# Edge case tests
|
||||
EDGE_CASE_TESTS = {
|
||||
"near_zero": {5: 0.1, 7: 0.05, 11: 0.01}, # Sub-nm coefficients
|
||||
"large_amplitude": {5: 500.0, 7: 300.0}, # Large deformation
|
||||
"many_modes": {j: 100.0 / j for j in range(5, 51)}, # All modes, decreasing
|
||||
"near_zero": {5: 0.1, 7: 0.05, 11: 0.01},
|
||||
"large_amplitude": {5: 500.0, 7: 300.0},
|
||||
"many_modes": {j: 100.0 / j for j in range(5, 51)},
|
||||
}
|
||||
|
||||
|
||||
def generate_single_case(
|
||||
name: str,
|
||||
coeffs: Dict[int, float],
|
||||
output_dir: Path,
|
||||
x_m: np.ndarray,
|
||||
y_m: np.ndarray,
|
||||
z_m: np.ndarray,
|
||||
diameter_mm: float,
|
||||
noise_rms_nm: float = 0.0,
|
||||
include_lateral: bool = False,
|
||||
):
|
||||
"""Generate a single test case."""
|
||||
print(f"\nGenerating: {name}")
|
||||
dx, dy, dz, meta = synthesize_displacements(
|
||||
x_m, y_m, coeffs, diameter_mm,
|
||||
noise_rms_nm=noise_rms_nm,
|
||||
include_lateral=include_lateral,
|
||||
)
|
||||
write_csv_fea(output_dir / f"{name}.csv", x_m, y_m, z_m, dx, dy, dz)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
return meta
|
||||
|
||||
|
||||
def generate_test_suite(
|
||||
output_dir: str,
|
||||
diameter_mm: float = 1200.0,
|
||||
inner_radius_mm: float = 135.75,
|
||||
n_points_radial: int = 200,
|
||||
inject_csv: str = None,
|
||||
diameter_mm: float = None,
|
||||
inner_radius_mm: float = 0.0,
|
||||
surface_type: str = "flat",
|
||||
roc_mm: float = 0.0,
|
||||
):
|
||||
"""Generate the full validation test suite."""
|
||||
output_dir = Path(output_dir)
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Get mesh
|
||||
if inject_csv:
|
||||
print(f"Loading real mesh from: {inject_csv}")
|
||||
x_m, y_m, z_m = load_real_mesh(inject_csv)
|
||||
if diameter_mm is None:
|
||||
r_mm = np.sqrt(x_m**2 + y_m**2) * 1000.0
|
||||
diameter_mm = 2.0 * np.max(r_mm)
|
||||
mesh_source = f"real FEA mesh ({inject_csv})"
|
||||
else:
|
||||
if diameter_mm is None:
|
||||
diameter_mm = 1200.0
|
||||
x_m, y_m, z_m = generate_mesh(
|
||||
diameter_mm, inner_radius_mm,
|
||||
n_rings=25, surface_type=surface_type, roc_mm=roc_mm
|
||||
)
|
||||
mesh_source = f"synthetic {surface_type} (D={diameter_mm}mm)"
|
||||
|
||||
print(f"\n Mesh: {mesh_source}")
|
||||
print(f" Nodes: {len(x_m)}")
|
||||
print(f" Diameter: {diameter_mm:.1f} mm")
|
||||
|
||||
all_cases = {}
|
||||
|
||||
# 1. Single-mode tests
|
||||
print("\n=== Single-Mode Tests ===")
|
||||
for name, coeffs in SINGLE_MODE_TESTS.items():
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, inner_radius_mm, n_points_radial)
|
||||
opd, meta = synthesize_surface(x, y, coeffs, diameter_mm)
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
meta = generate_single_case(name, coeffs, output_dir, x_m, y_m, z_m, diameter_mm)
|
||||
all_cases[name] = meta
|
||||
|
||||
# 2. Realistic multi-mode
|
||||
print("\n=== Realistic Multi-Mode ===")
|
||||
name = "realistic_gravity"
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, inner_radius_mm, n_points_radial)
|
||||
opd, meta = synthesize_surface(x, y, PRESET_REALISTIC, diameter_mm)
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
all_cases[name] = meta
|
||||
meta = generate_single_case("realistic_gravity", PRESET_REALISTIC, output_dir,
|
||||
x_m, y_m, z_m, diameter_mm)
|
||||
all_cases["realistic_gravity"] = meta
|
||||
|
||||
# 3. Noisy versions
|
||||
print("\n=== Noisy Tests ===")
|
||||
for noise_level in [1.0, 5.0, 10.0]:
|
||||
name = f"realistic_noise_{noise_level:.0f}nm"
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, inner_radius_mm, n_points_radial)
|
||||
opd, meta = synthesize_surface(x, y, PRESET_REALISTIC, diameter_mm, noise_rms_nm=noise_level)
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
meta = generate_single_case(name, PRESET_REALISTIC, output_dir,
|
||||
x_m, y_m, z_m, diameter_mm,
|
||||
noise_rms_nm=noise_level)
|
||||
all_cases[name] = meta
|
||||
|
||||
# 4. Edge cases
|
||||
print("\n=== Edge Case Tests ===")
|
||||
for name, coeffs in EDGE_CASE_TESTS.items():
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, inner_radius_mm, n_points_radial)
|
||||
opd, meta = synthesize_surface(x, y, coeffs, diameter_mm)
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
meta = generate_single_case(name, coeffs, output_dir, x_m, y_m, z_m, diameter_mm)
|
||||
all_cases[name] = meta
|
||||
|
||||
# 5. Full-disk (no central hole) for comparison
|
||||
print("\n=== Full-Disk (No Hole) ===")
|
||||
name = "realistic_full_disk"
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, 0.0, n_points_radial)
|
||||
opd, meta = synthesize_surface(x, y, PRESET_REALISTIC, diameter_mm)
|
||||
meta["inner_radius_mm"] = 0.0
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
all_cases[name] = meta
|
||||
|
||||
# 6. Scattered points (simulates real FEA mesh)
|
||||
print("\n=== Scattered Grid (FEA-like) ===")
|
||||
name = "realistic_scattered"
|
||||
print(f"\nGenerating: {name}")
|
||||
x, y, _ = generate_grid(diameter_mm, inner_radius_mm, n_points_radial, grid_type="scattered")
|
||||
opd, meta = synthesize_surface(x, y, PRESET_REALISTIC, diameter_mm)
|
||||
meta["grid_type"] = "scattered"
|
||||
write_csv_opd(output_dir / f"{name}.csv", x, y, opd)
|
||||
write_metadata(output_dir / f"{name}_truth.json", meta)
|
||||
all_cases[name] = meta
|
||||
# 5. With lateral displacement (tests rigorous OPD method)
|
||||
print("\n=== Lateral Displacement Test ===")
|
||||
meta = generate_single_case("realistic_with_lateral", PRESET_REALISTIC, output_dir,
|
||||
x_m, y_m, z_m, diameter_mm, include_lateral=True)
|
||||
all_cases["realistic_with_lateral"] = meta
|
||||
|
||||
# Summary
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Generated {len(all_cases)} test cases in: {output_dir}")
|
||||
print(f"Mesh source: {mesh_source}")
|
||||
print(f"{'='*60}")
|
||||
|
||||
# Write suite manifest
|
||||
manifest = {
|
||||
"suite": "Zernike Pipeline Validation",
|
||||
"generated": "2026-03-09",
|
||||
"mirror_diameter_mm": diameter_mm,
|
||||
"inner_radius_mm": inner_radius_mm,
|
||||
"n_zernike_modes": 50,
|
||||
"n_points_radial": n_points_radial,
|
||||
"mesh_source": mesh_source,
|
||||
"diameter_mm": diameter_mm,
|
||||
"n_modes": 50,
|
||||
"cases": all_cases,
|
||||
}
|
||||
manifest_path = output_dir / "suite_manifest.json"
|
||||
@@ -432,60 +535,63 @@ def main():
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog="""
|
||||
Examples:
|
||||
# Pure astigmatism (100nm)
|
||||
# Pure astigmatism (100nm) on flat synthetic mesh
|
||||
python generate_synthetic_wfe.py --zernike "5:100" -o test_astig.csv
|
||||
|
||||
# Realistic multi-mode mirror
|
||||
# Realistic multi-mode
|
||||
python generate_synthetic_wfe.py --preset realistic -o test_realistic.csv
|
||||
|
||||
# Full validation suite
|
||||
python generate_synthetic_wfe.py --suite -d validation_suite/
|
||||
# Inject into real M2 mesh
|
||||
python generate_synthetic_wfe.py --inject m2_real.csv --zernike "5:100,7:50" -o test.csv
|
||||
|
||||
# Custom with noise
|
||||
python generate_synthetic_wfe.py --zernike "5:80,7:45,11:15" --noise 2.0 -o test.csv
|
||||
# Full suite using real mesh geometry
|
||||
python generate_synthetic_wfe.py --suite --inject m2_real.csv -d validation_suite/
|
||||
|
||||
# Full suite with synthetic spherical mirror
|
||||
python generate_synthetic_wfe.py --suite --surface sphere --roc 5000 -d validation_suite/
|
||||
"""
|
||||
)
|
||||
|
||||
parser.add_argument("--zernike", "-z", type=str,
|
||||
help="Zernike coefficients as 'j:amp_nm,...' (e.g. '5:100,7:50')")
|
||||
help="Zernike coefficients as 'j:amp_nm,...'")
|
||||
parser.add_argument("--preset", choices=["realistic"],
|
||||
help="Use preset coefficient set")
|
||||
parser.add_argument("--suite", action="store_true",
|
||||
help="Generate full validation test suite")
|
||||
parser.add_argument("--inject", type=str,
|
||||
help="Real FEA CSV to use as mesh source (keeps geometry, replaces displacements)")
|
||||
parser.add_argument("--output", "-o", type=str, default="synthetic_wfe.csv",
|
||||
help="Output CSV file path")
|
||||
parser.add_argument("--output-dir", "-d", type=str, default="validation_suite",
|
||||
help="Output directory for --suite mode")
|
||||
parser.add_argument("--diameter", type=float, default=1200.0,
|
||||
help="Mirror diameter in mm (default: 1200)")
|
||||
parser.add_argument("--inner-radius", type=float, default=135.75,
|
||||
help="Inner radius in mm for annular aperture (default: 135.75, 0=full disk)")
|
||||
parser.add_argument("--grid-points", type=int, default=200,
|
||||
help="Number of radial grid points (default: 200, total ~ 4*N^2)")
|
||||
parser.add_argument("--diameter", type=float, default=None,
|
||||
help="Mirror diameter in mm (auto-detected from mesh if not set)")
|
||||
parser.add_argument("--inner-radius", type=float, default=0.0,
|
||||
help="Inner radius in mm for annular aperture")
|
||||
parser.add_argument("--surface", choices=["flat", "sphere", "parabola"],
|
||||
default="flat", help="Surface type for synthetic mesh")
|
||||
parser.add_argument("--roc", type=float, default=5000.0,
|
||||
help="Radius of curvature in mm (for sphere/parabola)")
|
||||
parser.add_argument("--noise", type=float, default=0.0,
|
||||
help="Gaussian noise RMS in nm (default: 0)")
|
||||
parser.add_argument("--grid-type", choices=["cartesian", "scattered"],
|
||||
default="cartesian",
|
||||
help="Grid type (default: cartesian)")
|
||||
parser.add_argument("--unit", choices=["nm", "mm"], default="nm",
|
||||
help="OPD output unit (default: nm)")
|
||||
help="Gaussian noise RMS in nm")
|
||||
parser.add_argument("--lateral", action="store_true",
|
||||
help="Include small lateral DX/DY displacements")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
print("=" * 60)
|
||||
print("Synthetic WFE Surface Generator")
|
||||
print("Zernike Pipeline Validation — GigaBIT M1")
|
||||
print("Zernike Pipeline Validation — GigaBIT")
|
||||
print("=" * 60)
|
||||
print(f" Mirror diameter: {args.diameter} mm")
|
||||
print(f" Inner radius: {args.inner_radius} mm")
|
||||
print(f" Grid points: ~{(args.grid_points*2)**2}")
|
||||
|
||||
if args.suite:
|
||||
generate_test_suite(
|
||||
args.output_dir,
|
||||
args.diameter,
|
||||
args.inner_radius,
|
||||
args.grid_points,
|
||||
inject_csv=args.inject,
|
||||
diameter_mm=args.diameter,
|
||||
inner_radius_mm=args.inner_radius,
|
||||
surface_type=args.surface,
|
||||
roc_mm=args.roc,
|
||||
)
|
||||
else:
|
||||
# Determine coefficients
|
||||
@@ -497,25 +603,36 @@ Examples:
|
||||
print("\nERROR: Specify --zernike, --preset, or --suite")
|
||||
sys.exit(1)
|
||||
|
||||
# Get mesh
|
||||
if args.inject:
|
||||
x_m, y_m, z_m = load_real_mesh(args.inject)
|
||||
diameter_mm = args.diameter
|
||||
else:
|
||||
diameter_mm = args.diameter or 1200.0
|
||||
x_m, y_m, z_m = generate_mesh(
|
||||
diameter_mm, args.inner_radius,
|
||||
n_rings=25, surface_type=args.surface, roc_mm=args.roc
|
||||
)
|
||||
|
||||
print(f" Nodes: {len(x_m)}")
|
||||
if diameter_mm:
|
||||
print(f" Diameter: {diameter_mm:.1f} mm")
|
||||
|
||||
print(f"\n Coefficients:")
|
||||
for j, amp in sorted(coeffs.items()):
|
||||
print(f" Z{j:2d} ({zernike_name(j):20s}): {amp:8.2f} nm")
|
||||
|
||||
# Generate
|
||||
x, y, _ = generate_grid(args.diameter, args.inner_radius,
|
||||
args.grid_points, args.grid_type)
|
||||
opd, meta = synthesize_surface(x, y, coeffs, args.diameter,
|
||||
noise_rms_nm=args.noise)
|
||||
dx, dy, dz, meta = synthesize_displacements(
|
||||
x_m, y_m, coeffs, diameter_mm,
|
||||
noise_rms_nm=args.noise,
|
||||
include_lateral=args.lateral,
|
||||
)
|
||||
|
||||
print(f"\n Points in aperture: {len(x)}")
|
||||
print(f" RMS (clean): {meta['rms_nm_clean']:.3f} nm")
|
||||
print(f"\n RMS (clean): {meta['rms_nm_clean']:.3f} nm")
|
||||
if args.noise > 0:
|
||||
print(f" RMS (noisy): {meta['rms_nm_with_noise']:.3f} nm")
|
||||
|
||||
# Write outputs
|
||||
print(f"\n Output unit: {args.unit}")
|
||||
write_csv_opd(args.output, x, y, opd, opd_unit=args.unit)
|
||||
|
||||
write_csv_fea(args.output, x_m, y_m, z_m, dx, dy, dz)
|
||||
meta_path = Path(args.output).with_suffix('.json')
|
||||
write_metadata(str(meta_path), meta)
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
Zernike Round-Trip Validator
|
||||
=============================
|
||||
|
||||
Reads a synthetic WFE CSV + its truth JSON, fits Zernike coefficients,
|
||||
and compares recovered vs input coefficients.
|
||||
Reads a synthetic WFE CSV (FEA format: X,Y,Z,DX,DY,DZ) + its truth JSON,
|
||||
fits Zernike coefficients from DZ, and compares recovered vs input.
|
||||
|
||||
This validates that the Zernike fitting math itself is correct by
|
||||
doing a generate → fit → compare round-trip.
|
||||
This validates that the Zernike fitting math is correct by doing a
|
||||
generate → fit → compare round-trip.
|
||||
|
||||
Usage:
|
||||
# Single file
|
||||
@@ -21,6 +21,7 @@ Created: 2026-03-09
|
||||
"""
|
||||
|
||||
import sys
|
||||
import csv
|
||||
import json
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
@@ -86,28 +87,67 @@ def zernike_name(j):
|
||||
return names.get((n, m), f"Z({n},{m:+d})")
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# CSV Reading (FEA format)
|
||||
# ============================================================================
|
||||
|
||||
def read_fea_csv(csv_path: str):
|
||||
"""
|
||||
Read FEA-format CSV with columns: (index), X, Y, Z, DX, DY, DZ.
|
||||
All values in meters.
|
||||
|
||||
Returns:
|
||||
x_m, y_m, z_m, dx_m, dy_m, dz_m: arrays
|
||||
"""
|
||||
x, y, z, dx, dy, dz = [], [], [], [], [], []
|
||||
with open(csv_path) as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
x.append(float(row['X']))
|
||||
y.append(float(row['Y']))
|
||||
z.append(float(row['Z']))
|
||||
dx.append(float(row['DX']))
|
||||
dy.append(float(row['DY']))
|
||||
dz.append(float(row['DZ']))
|
||||
return (np.array(x), np.array(y), np.array(z),
|
||||
np.array(dx), np.array(dy), np.array(dz))
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Zernike Fitting (Least Squares)
|
||||
# ============================================================================
|
||||
|
||||
def fit_zernike(x_mm, y_mm, opd_nm, diameter_mm=1200.0, n_modes=50):
|
||||
def fit_zernike(x_m, y_m, dz_m, diameter_mm=None, n_modes=50):
|
||||
"""
|
||||
Fit Zernike coefficients to OPD data via least-squares.
|
||||
Fit Zernike coefficients to DZ displacement data.
|
||||
|
||||
Args:
|
||||
x_m, y_m: Node positions in meters
|
||||
dz_m: Z-displacement in meters
|
||||
diameter_mm: Mirror diameter (auto-detected if None)
|
||||
n_modes: Number of Zernike modes to fit
|
||||
|
||||
Returns:
|
||||
coefficients: array of shape (n_modes,), Noll-indexed from j=1
|
||||
coefficients_nm: array of shape (n_modes,), amplitudes in nm
|
||||
"""
|
||||
outer_radius = diameter_mm / 2.0
|
||||
r_norm = np.sqrt(x_mm**2 + y_mm**2) / outer_radius
|
||||
theta = np.arctan2(y_mm, x_mm)
|
||||
if diameter_mm is None:
|
||||
r_mm = np.sqrt(x_m**2 + y_m**2) * 1000.0
|
||||
diameter_mm = 2.0 * np.max(r_mm)
|
||||
|
||||
outer_r_m = diameter_mm / 2000.0
|
||||
r_norm = np.sqrt(x_m**2 + y_m**2) / outer_r_m
|
||||
theta = np.arctan2(y_m, x_m)
|
||||
|
||||
# Convert DZ to nm
|
||||
dz_nm = dz_m * 1e9
|
||||
|
||||
# Build Zernike basis matrix
|
||||
Z = np.zeros((len(x_mm), n_modes))
|
||||
Z = np.zeros((len(x_m), n_modes))
|
||||
for j in range(1, n_modes + 1):
|
||||
Z[:, j - 1] = zernike_noll(j, r_norm, theta)
|
||||
|
||||
# Least-squares fit
|
||||
coeffs, residuals, rank, sv = lstsq(Z, opd_nm, rcond=None)
|
||||
coeffs, residuals, rank, sv = lstsq(Z, dz_nm, rcond=None)
|
||||
|
||||
return coeffs
|
||||
|
||||
@@ -116,31 +156,24 @@ def fit_zernike(x_mm, y_mm, opd_nm, diameter_mm=1200.0, n_modes=50):
|
||||
# Validation
|
||||
# ============================================================================
|
||||
|
||||
def validate_file(csv_path: str, n_modes: int = 50, diameter_mm: float = 1200.0,
|
||||
def validate_file(csv_path: str, n_modes: int = 50, diameter_mm: float = None,
|
||||
tolerance_nm: float = 0.5, verbose: bool = True):
|
||||
"""
|
||||
Validate a single synthetic WFE file.
|
||||
|
||||
Returns:
|
||||
passed: bool
|
||||
results: dict with comparison details
|
||||
results: dict
|
||||
"""
|
||||
csv_path = Path(csv_path)
|
||||
truth_path = csv_path.with_name(csv_path.stem + "_truth.json")
|
||||
|
||||
if not truth_path.exists():
|
||||
# Try removing any suffix before _truth
|
||||
base = csv_path.stem
|
||||
truth_path = csv_path.with_name(base + "_truth.json")
|
||||
if not truth_path.exists():
|
||||
print(f" WARNING: No truth file found for {csv_path.name}")
|
||||
return None, None
|
||||
print(f" WARNING: No truth file found for {csv_path.name}")
|
||||
return None, None
|
||||
|
||||
# Load CSV
|
||||
data = np.loadtxt(csv_path, delimiter=",", skiprows=1)
|
||||
x_mm = data[:, 0]
|
||||
y_mm = data[:, 1]
|
||||
opd_nm = data[:, 2]
|
||||
# Load CSV (FEA format)
|
||||
x_m, y_m, z_m, dx_m, dy_m, dz_m = read_fea_csv(csv_path)
|
||||
|
||||
# Load truth
|
||||
with open(truth_path) as f:
|
||||
@@ -148,8 +181,12 @@ def validate_file(csv_path: str, n_modes: int = 50, diameter_mm: float = 1200.0,
|
||||
|
||||
input_coeffs = {int(k): v for k, v in truth["input_coefficients"].items()}
|
||||
|
||||
# Fit Zernike
|
||||
recovered = fit_zernike(x_mm, y_mm, opd_nm, diameter_mm, n_modes)
|
||||
# Use diameter from truth if available
|
||||
if diameter_mm is None:
|
||||
diameter_mm = truth.get("diameter_mm")
|
||||
|
||||
# Fit Zernike from DZ
|
||||
recovered = fit_zernike(x_m, y_m, dz_m, diameter_mm, n_modes)
|
||||
|
||||
# Compare
|
||||
max_error = 0.0
|
||||
@@ -177,7 +214,6 @@ def validate_file(csv_path: str, n_modes: int = 50, diameter_mm: float = 1200.0,
|
||||
"passed": mode_passed,
|
||||
}
|
||||
|
||||
# Only print modes with non-zero input or significant recovery
|
||||
if verbose and (abs(input_val) > 0.01 or abs(recovered_val) > tolerance_nm):
|
||||
status = "✅" if mode_passed else "❌"
|
||||
print(f" Z{j:>4d} {zernike_name(j):>20} {input_val:>10.3f} {recovered_val:>14.3f} {error:>10.6f} {status:>8}")
|
||||
@@ -185,7 +221,7 @@ def validate_file(csv_path: str, n_modes: int = 50, diameter_mm: float = 1200.0,
|
||||
results["max_error_nm"] = float(max_error)
|
||||
results["all_passed"] = all_passed
|
||||
results["tolerance_nm"] = tolerance_nm
|
||||
results["n_points"] = len(x_mm)
|
||||
results["n_points"] = len(x_m)
|
||||
|
||||
if verbose:
|
||||
print(f"\n Max error: {max_error:.6f} nm")
|
||||
@@ -238,12 +274,13 @@ def validate_suite(suite_dir: str, n_modes: int = 50, tolerance_nm: float = 0.5)
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Validate Zernike round-trip accuracy")
|
||||
parser.add_argument("input", nargs="?", help="CSV file or --suite directory")
|
||||
parser.add_argument("input", nargs="?", help="CSV file or use --suite")
|
||||
parser.add_argument("--suite", type=str, help="Validate all CSVs in directory")
|
||||
parser.add_argument("--n-modes", type=int, default=50)
|
||||
parser.add_argument("--tolerance", type=float, default=0.5,
|
||||
help="Max acceptable coefficient error in nm (default: 0.5)")
|
||||
parser.add_argument("--diameter", type=float, default=1200.0)
|
||||
parser.add_argument("--diameter", type=float, default=None,
|
||||
help="Mirror diameter in mm (auto-detected if not set)")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.suite:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"5": "Astigmatism 45\u00b0"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.90787728635817,
|
||||
"rms_nm_with_noise": 41.90787728635817,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.12315417582499,
|
||||
"rms_nm_with_noise": 42.12315417582499,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"6": "Astigmatism 0\u00b0"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.87578387312423,
|
||||
"rms_nm_with_noise": 41.87578387312423,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.12517074515991,
|
||||
"rms_nm_with_noise": 42.12517074515991,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"7": "Coma X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 35.928378983095506,
|
||||
"rms_nm_with_noise": 35.928378983095506,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.296215855347604,
|
||||
"rms_nm_with_noise": 36.296215855347604,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"8": "Coma Y"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 35.928378983095506,
|
||||
"rms_nm_with_noise": 35.928378983095506,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 33.6178747432943,
|
||||
"rms_nm_with_noise": 33.6178747432943,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"9": "Trefoil X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 36.27358028530051,
|
||||
"rms_nm_with_noise": 36.27358028530051,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.78252785961855,
|
||||
"rms_nm_with_noise": 36.78252785961855,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"10": "Trefoil Y"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 36.27358028530051,
|
||||
"rms_nm_with_noise": 36.27358028530051,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.78306790995374,
|
||||
"rms_nm_with_noise": 36.78306790995374,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"11": "Primary Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.33581266115739,
|
||||
"rms_nm_with_noise": 41.33581266115739,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 45.12884267711414,
|
||||
"rms_nm_with_noise": 45.12884267711414,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 17.392678653363138,
|
||||
"rms_nm_with_noise": 17.392678653363138,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 19.830797790000034,
|
||||
"rms_nm_with_noise": 19.830797790000034,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,10 +5,16 @@
|
||||
"coefficient_names": {
|
||||
"37": "Z(8,+0)"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 9.330123545845794,
|
||||
"rms_nm_with_noise": 9.330123545845794,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 10.645079894279842,
|
||||
"rms_nm_with_noise": 10.645079894279842,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,10 +7,16 @@
|
||||
"5": "Astigmatism 45\u00b0",
|
||||
"7": "Coma X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 235.6361394467916,
|
||||
"rms_nm_with_noise": 235.6361394467916,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 237.09820412706273,
|
||||
"rms_nm_with_noise": 237.09820412706273,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -95,10 +95,16 @@
|
||||
"49": "Z(9,+3)",
|
||||
"50": "Z(9,-5)"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 16.40426082558852,
|
||||
"rms_nm_with_noise": 16.40426082558852,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 14.718241472214698,
|
||||
"rms_nm_with_noise": 14.718241472214698,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,16 @@
|
||||
"7": "Coma X",
|
||||
"11": "Primary Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 0.04578284369521264,
|
||||
"rms_nm_with_noise": 0.04578284369521264,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 0.046725164260732095,
|
||||
"rms_nm_with_noise": 0.046725164260732095,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -21,10 +21,16 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.22340829508179,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.14873971447113,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,10 +21,16 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 42.39618932696218,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 43.691084762101006,
|
||||
"noise_rms_nm": 10.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,10 +21,16 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.23235114137111,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.210200631608785,
|
||||
"noise_rms_nm": 1.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,10 +21,16 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.511570286278975,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.66543622974069,
|
||||
"noise_rms_nm": 5.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"input_coefficients": {
|
||||
"5": 80.0,
|
||||
"6": 45.0,
|
||||
"7": 30.0,
|
||||
"8": 20.0,
|
||||
"9": 15.0,
|
||||
"11": 10.0,
|
||||
"13": 5.0,
|
||||
"16": 3.0,
|
||||
"22": 2.0
|
||||
},
|
||||
"coefficient_names": {
|
||||
"5": "Astigmatism 45\u00b0",
|
||||
"6": "Astigmatism 0\u00b0",
|
||||
"7": "Coma X",
|
||||
"8": "Coma Y",
|
||||
"9": "Trefoil X",
|
||||
"11": "Primary Spherical",
|
||||
"13": "2nd Astig Y",
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 119376,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.32177716032332,
|
||||
"rms_nm_with_noise": 41.32177716032332,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42,
|
||||
"grid_type": "scattered"
|
||||
}
|
||||
358
tools/validation_suite/realistic_with_lateral.csv
Normal file
358
tools/validation_suite/realistic_with_lateral.csv
Normal file
@@ -0,0 +1,358 @@
|
||||
,X,Y,Z,DX,DY,DZ
|
||||
0,2.3213457927954585e-07,7.0192473936117050e-03,9.0794787554182577e-03,4.10433e-09,3.6413360715345716e-09,5.5456625517900061e-09
|
||||
1,2.5977121345781744e-03,1.1517149682457123e-02,9.0794787554182577e-03,-1.40079e-08,-1.1628662373938561e-08,3.3729004023442596e-09
|
||||
2,-2.5972378654218259e-03,1.1517149682457123e-02,9.0794787554182577e-03,1.01081e-08,-1.9871090779720466e-09,4.3059533380820320e-09
|
||||
3,-4.5013965421825583e-05,-7.9734726944255263e-03,8.5744833477516824e-03,1.26688e-08,-2.0543728062746425e-09,1.0468805096307664e-08
|
||||
4,1.1570132134578174e-02,-3.7689960772034903e-03,8.7319678715387372e-03,-2.62791e-08,5.1640496414284948e-09,5.8934179629667934e-09
|
||||
5,1.7727132134578175e-02,6.8948193904984079e-03,8.8090371313267468e-03,-1.75395e-08,1.3466939676917010e-08,1.9039675025392224e-09
|
||||
6,1.5588132134578174e-02,1.9017250359090548e-02,8.9065225749496157e-03,1.72192e-09,-1.4257747405001986e-08,-1.0499013560871242e-09
|
||||
7,6.1562021345781745e-03,2.6933356070924563e-02,8.9632178928165107e-03,-4.25957e-09,-1.6837850007999319e-09,-3.1099651739473480e-09
|
||||
8,-6.1557378654218259e-03,2.6933356070924563e-02,8.9632178928165107e-03,-2.26300e-10,1.9954179503057644e-08,-2.3010729730376959e-09
|
||||
9,-1.5587667865421826e-02,1.9017250359090548e-02,8.9065225749496157e-03,-1.14899e-08,-1.0015618097710347e-08,2.7393810215825199e-09
|
||||
10,-1.7726667865421826e-02,6.8948193904984079e-03,8.8090371313267468e-03,1.18449e-08,-1.1075137871892612e-08,9.2451728077205348e-09
|
||||
11,-1.1569667865421825e-02,-3.7689960772034903e-03,8.7319678715387372e-03,1.04763e-08,2.7249241955040577e-09,1.2425638817748499e-08
|
||||
12,-9.7860654218255844e-06,-2.2970577048445823e-02,7.8864448352931049e-03,8.89388e-10,1.1373283314030422e-08,1.3995427849511388e-08
|
||||
13,1.3421332134578074e-02,-2.0119364599521683e-02,7.9240290221305187e-03,1.51832e-08,1.5390104956547141e-10,8.1247064421260577e-09
|
||||
14,2.4522732134578173e-02,-1.2053674713378509e-02,7.9830854406433005e-03,6.29703e-09,1.7900178116025116e-08,3.1786863030144198e-09
|
||||
15,3.1383232134578179e-02,-1.7282747209296234e-04,8.0759553993876576e-03,-1.15741e-08,1.1540421143441363e-08,1.7058604666146706e-10
|
||||
16,3.2817232134578177e-02,1.3474658857753063e-02,8.1759197763628944e-03,4.96682e-09,1.1338732876963176e-08,-1.6219814546715410e-09
|
||||
17,2.8577432134578175e-02,2.6523129284856700e-02,8.2768579406105047e-03,-1.29155e-08,7.4635652419673626e-09,-3.7109572339738018e-09
|
||||
18,1.9396032134578176e-02,3.6719708057530331e-02,8.3506301078768441e-03,1.18321e-08,3.1351874079887179e-08,-6.7787849618833321e-09
|
||||
19,6.8607921345781742e-03,4.2301504501233184e-02,8.3915380663392991e-03,-6.72467e-10,-2.7633857615590754e-09,-9.7739439479029944e-09
|
||||
20,-6.8603578654218254e-03,4.2301504501233184e-02,8.3915380663392991e-03,-2.48997e-09,-2.6986056731467768e-08,-1.0531808234423988e-08
|
||||
21,-1.9395567865421827e-02,3.6719708057530331e-02,8.3506301078768441e-03,-9.17165e-09,2.1608194419914608e-08,-7.3937932764636570e-09
|
||||
22,-2.8576967865421826e-02,2.6523129284856700e-02,8.2768579406105047e-03,1.64668e-08,-6.1648941260451723e-09,-5.0572570460963596e-10
|
||||
23,-3.2816767865421821e-02,1.3474658857753063e-02,8.1759197763628944e-03,-2.08141e-09,1.4530748186755844e-09,8.1006900954463340e-09
|
||||
24,-3.1382767865421823e-02,-1.7282747209296234e-04,8.0759553993876576e-03,-5.76928e-09,1.7638740139960184e-08,1.5511521580132961e-08
|
||||
25,-2.4522267865421825e-02,-1.2053674713378509e-02,7.9830854406433005e-03,-4.74299e-09,-2.1581325570854299e-08,1.9276879715777928e-08
|
||||
26,-1.3420967865421825e-02,-2.0118427496016666e-02,7.9243780737328073e-03,7.16984e-09,-1.6858820518943604e-08,1.8462358573335362e-08
|
||||
27,-8.4423554218255850e-06,-3.7952721095265290e-02,6.6597485565225156e-03,4.92228e-09,-2.1568104046082899e-08,1.5884959060372296e-08
|
||||
28,1.4146632134578174e-02,-3.5829819265298962e-02,6.7675299107776699e-03,5.55922e-09,-1.0696465449874797e-08,8.7434877068591480e-09
|
||||
29,2.7036432134578174e-02,-2.9620214608197720e-02,6.8075174401749372e-03,5.80286e-09,5.9216003925603756e-09,2.6051440331002530e-09
|
||||
30,3.7524332134578176e-02,-1.9892488839563377e-02,6.8880616531739047e-03,2.88465e-08,7.0604469538996919e-09,-1.3014983816084681e-09
|
||||
31,4.4677632134578177e-02,-7.5018139380177706e-03,6.9787505952192408e-03,-5.47413e-09,3.7212217235227740e-09,-2.7744478529863166e-09
|
||||
32,4.7861332134578174e-02,6.4448407404464891e-03,7.0834371734866952e-03,-6.89955e-09,-1.9028977337545849e-08,-2.7005066384785863e-09
|
||||
33,4.6792532134578076e-02,2.0711959250144990e-02,7.1901068984361327e-03,-1.09610e-08,-3.1115492272475089e-08,-2.6209504190291017e-09
|
||||
34,4.1565032134578177e-02,3.4031484920716878e-02,7.2852957159128540e-03,8.29682e-09,7.3210512541421645e-10,-3.9736152603302512e-09
|
||||
35,3.2644932134578176e-02,4.5213819878222580e-02,7.3740926648797611e-03,1.52065e-08,-6.3544962083647799e-09,-7.3551044142720491e-09
|
||||
36,2.0824032134578174e-02,5.3273887143335807e-02,7.4310547737799215e-03,-1.53479e-09,6.1876079673597290e-09,-1.2172528166961418e-08
|
||||
37,7.1534421345780747e-03,5.7489325537144878e-02,7.4645681740987957e-03,-1.13163e-08,9.4548288556990198e-09,-1.6842541083723473e-08
|
||||
38,-7.1530578654218253e-03,5.7489325537144878e-02,7.4645681740987957e-03,-1.11052e-08,1.8620162814994461e-09,-1.9449999341888708e-08
|
||||
39,-2.0823667865421825e-02,5.3273887143335807e-02,7.4310547737799215e-03,8.76303e-09,1.0238465849192269e-08,-1.8524586235996196e-08
|
||||
40,-3.2644567865421720e-02,4.5214756981727500e-02,7.3744417164818277e-03,1.00111e-08,3.0873183542105403e-09,-1.3600994119336828e-08
|
||||
41,-4.1564467865421825e-02,3.4031484920716878e-02,7.2852957159128540e-03,7.31591e-09,7.1396042226991390e-09,-5.3672598369685514e-09
|
||||
42,-4.6791867865421721e-02,2.0711959250144990e-02,7.1901068984361327e-03,-8.96395e-09,-9.4914604765095529e-09,4.6042988596991861e-09
|
||||
43,-4.7860767865421719e-02,6.4448407404464891e-03,7.0834371734866952e-03,3.12705e-09,-2.4192412644810051e-09,1.4324764693410642e-08
|
||||
44,-4.4677067865421825e-02,-7.5027510415228149e-03,6.9784015436171742e-03,1.57168e-09,2.6504376461438158e-09,2.1910871386556808e-08
|
||||
45,-3.7523867865421820e-02,-1.9892488839563377e-02,6.8880616531739047e-03,2.94558e-09,1.1051949895980550e-08,2.5991502342524860e-08
|
||||
46,-2.7035967865421826e-02,-2.9623705124218663e-02,6.8168884752246584e-03,1.17375e-08,-5.3034207072422100e-09,2.5981968272528659e-08
|
||||
47,-1.4146367865421726e-02,-3.5829819265298962e-02,6.7675299107776699e-03,3.01168e-09,7.0197617393434275e-09,2.2214156344944761e-08
|
||||
48,-9.6070654218255849e-06,-5.2943092310579004e-02,5.2058930523204427e-03,9.14450e-09,-3.5806642873205972e-09,1.5802235914497173e-08
|
||||
49,1.4527432134578175e-02,-5.1249874114423916e-02,5.2496667911337003e-03,9.10243e-10,-1.5832115312202864e-09,7.4649020048930409e-09
|
||||
50,2.8270832134578174e-02,-4.6248609401362606e-02,5.2877623274518726e-03,3.89424e-09,1.1173046597253067e-08,1.3764427214970510e-10
|
||||
51,4.0491532134578179e-02,-3.8211711825875322e-02,5.3467653877583565e-03,8.50301e-09,-2.6845141906073723e-08,-4.9883574717195902e-09
|
||||
52,5.0528332134578177e-02,-2.7572940254809331e-02,5.4251774957481125e-03,-1.96269e-08,-1.7462583738021162e-08,-7.2830491503195363e-09
|
||||
53,5.7841532134578176e-02,-1.4907203797776408e-02,5.5222805388897012e-03,-4.30575e-09,-1.9964010073823116e-08,-6.8751621515818447e-09
|
||||
54,6.2036132134578176e-02,-8.9385136094941031e-04,5.6197971081330955e-03,-6.33559e-09,-3.1432191819906821e-08,-4.6386901997485072e-09
|
||||
55,6.2886032134578176e-02,1.3705913325547964e-02,5.7329876505918254e-03,-8.60524e-09,-9.1357519371973975e-09,-1.9685322349613282e-09
|
||||
56,6.0346332134578178e-02,2.8110433663990547e-02,5.8374808053598404e-03,-3.70598e-09,1.0094355233591040e-08,-3.7860794035413073e-10
|
||||
57,5.4554032134578177e-02,4.1538826750650043e-02,5.9412069359068287e-03,2.01358e-08,-3.8371909350515803e-09,-1.0541101034735517e-09
|
||||
58,4.5820032134578179e-02,5.3269152714121498e-02,6.0313667424030104e-03,-1.16621e-08,2.6640953251880666e-09,-4.4831517847772330e-09
|
||||
59,3.4615332134578077e-02,6.2672408339502758e-02,6.0977643608532972e-03,1.30420e-08,1.4671004797669069e-08,-1.0292578104838985e-08
|
||||
60,2.1544832134578175e-02,6.9234338347007818e-02,6.1516027914036986e-03,-2.26671e-08,1.7883012047748894e-08,-1.7332859198081502e-08
|
||||
61,7.3134721345781747e-03,7.2609856316273855e-02,6.1710563042591815e-03,-4.51067e-09,-9.3124006466216896e-10,-2.3992275015306424e-08
|
||||
62,-7.3127478654217261e-03,7.2607302903757831e-02,6.1807763909109692e-03,2.19217e-09,1.8231863828756117e-08,-2.8615341592704914e-08
|
||||
63,-2.1544167865421824e-02,6.9235275450512848e-02,6.1519518430057651e-03,7.89601e-09,1.2408822406558424e-09,-2.9931220217818621e-08
|
||||
64,-3.4614667865421819e-02,6.2673345443007678e-02,6.0981134124553638e-03,9.57973e-09,-1.1279173715471699e-08,-2.7328873926886974e-08
|
||||
65,-4.5819467865421820e-02,5.3270089817626418e-02,6.0317157940050770e-03,1.06858e-08,-8.0061607944949036e-09,-2.0953945681080203e-08
|
||||
66,-5.4553467865421819e-02,4.1539763854154962e-02,5.9415559875088952e-03,-4.69709e-09,-1.9941800737280026e-08,-1.1634641299567776e-08
|
||||
67,-6.0345867865421822e-02,2.8110433663990547e-02,5.8374808053598404e-03,-6.22756e-09,-1.1962547487940685e-08,-6.4690686314693643e-10
|
||||
68,-6.2885567865421835e-02,1.3706850429052980e-02,5.7333367021938919e-03,1.15563e-08,-4.8222366646210487e-09,1.0533423952958348e-08
|
||||
69,-6.2035667865421820e-02,-8.9385136094941031e-04,5.6197971081330955e-03,-2.57674e-09,1.0823733285812943e-08,2.0475236407428898e-08
|
||||
70,-5.7841167865421823e-02,-1.4907203797776408e-02,5.5222805388897012e-03,-1.71826e-08,2.3177577044948506e-08,2.7978107114567802e-08
|
||||
71,-5.0527967865421720e-02,-2.7572940254809331e-02,5.4251774957481125e-03,-1.52646e-08,-1.8617027090164565e-08,3.2194254768390145e-08
|
||||
72,-4.0491167865421819e-02,-3.8211711825875322e-02,5.3467653877583565e-03,-1.23844e-08,5.2911137480815679e-09,3.2725878913531776e-08
|
||||
73,-2.8270567865421824e-02,-4.6248609401362606e-02,5.2877623274518726e-03,6.69641e-09,-1.4015405710673246e-08,2.9675564285943127e-08
|
||||
74,-1.4527167865421825e-02,-5.1250811217928932e-02,5.2493177395316337e-03,1.91838e-09,6.3938407924164302e-09,2.3668662157740901e-08
|
||||
75,-1.4021565421825585e-05,-6.7923515555232711e-02,3.2755398693415927e-03,9.30036e-09,-1.7656463350594196e-09,1.3379043852696516e-08
|
||||
76,1.4330632134578074e-02,-6.6607056321628472e-02,3.3710599523513185e-03,-5.75480e-09,-2.4661032563472970e-08,4.2126626117160367e-09
|
||||
77,2.8174332134578175e-02,-6.2667616586811803e-02,3.3978101999720955e-03,2.13542e-09,1.2503517119482251e-08,-4.0326550216877224e-09
|
||||
78,4.1058032134578176e-02,-5.6250843134089845e-02,3.4402655464282894e-03,8.42627e-09,-8.1489403053234597e-09,-1.0352500113939321e-08
|
||||
79,5.2543032134578178e-02,-4.7579319722670266e-02,3.5115587803422610e-03,-4.16668e-09,-7.1912661909202206e-09,-1.4008427909589458e-08
|
||||
80,6.2239332134578176e-02,-3.6941485255109374e-02,3.5896218367301724e-03,6.15245e-09,-1.4408823587339265e-08,-1.4678710746266790e-08
|
||||
81,6.9816132134578171e-02,-2.4707633457913880e-02,3.6859245067712987e-03,-8.91568e-09,-8.8127422854523578e-09,-1.2550121997690383e-08
|
||||
82,7.5014532134578177e-02,-1.1285120890283495e-02,3.7767890862472342e-03,-4.89008e-09,5.7633876863609336e-09,-8.3032092923669466e-09
|
||||
83,7.7659232134578177e-02,2.8595894467506877e-03,3.8912202070116031e-03,-5.14174e-09,-2.5489901164770891e-09,-3.0244441577937607e-09
|
||||
84,7.7659332134578166e-02,1.7253801646638450e-02,3.9918737941566640e-03,-1.61071e-08,4.4268493912911130e-09,1.9941848200665779e-09
|
||||
85,7.5014832134578172e-02,3.1398511983672509e-02,4.1063049149210329e-03,6.55918e-09,4.8748365422018084e-09,5.4785781423294360e-09
|
||||
86,6.9816432134578166e-02,4.4817534035282006e-02,4.2065405294469116e-03,-6.32252e-09,1.7788397214386512e-08,6.4263812511561577e-09
|
||||
87,6.2239032134578175e-02,5.7055813452003459e-02,4.2938212160403832e-03,1.68287e-10,-4.6170918839372258e-09,4.2944352620125841e-09
|
||||
88,5.2542832134578180e-02,6.7691773712554373e-02,4.3711861692237175e-03,6.47532e-09,-1.9892251255464165e-08,-8.8707080283011644e-10
|
||||
89,4.1057932134578076e-02,7.6363297123973994e-02,4.4424794031376891e-03,6.01447e-09,1.4374746311906542e-08,-8.5151902981053047e-09
|
||||
90,2.8174332134578175e-02,8.2781007680200927e-02,4.4852838011961715e-03,8.96228e-09,-4.4649159400169461e-09,-1.7524533412406637e-08
|
||||
91,1.4331032134578174e-02,8.6716956898996708e-02,4.5214050838666697e-03,-1.32653e-09,1.5012787759304790e-08,-2.6574668750933080e-08
|
||||
92,1.4483434578174416e-05,8.8037723696161696e-02,4.4477907679620898e-03,-5.70153e-09,5.1638240147642046e-09,-3.4279612842677857e-08
|
||||
93,-1.4330167865421725e-02,8.6716019795491692e-02,4.5210560322643811e-03,-1.07375e-09,-1.7663316468727109e-09,-3.9481124428272790e-08
|
||||
94,-2.8173867865421826e-02,8.2780070576696008e-02,4.4849347495941050e-03,-2.27272e-08,4.6977695734015048e-09,-4.1334655536587397e-08
|
||||
95,-4.1057567865421821e-02,7.6365850536489921e-02,4.4327593164856793e-03,-1.94916e-08,2.6278787034143258e-08,-3.9497595930730417e-08
|
||||
96,-5.2542567865421823e-02,6.7692710816059404e-02,4.3715352208260061e-03,-1.78158e-08,2.7975488273398139e-08,-3.4104979159423052e-08
|
||||
97,-6.2238967865421720e-02,5.7056750555508379e-02,4.2941702676424498e-03,-1.34322e-08,9.3451580558936910e-10,-2.5711969966500273e-08
|
||||
98,-6.9815767865421832e-02,4.4818471138786925e-02,4.2068895810489781e-03,5.38468e-09,2.1576562717668837e-09,-1.5175663589491426e-08
|
||||
99,-7.5014067865421835e-02,3.1401065396188491e-02,4.0965848282688011e-03,-1.21962e-08,1.4496209032001869e-08,-3.5281522270647908e-09
|
||||
100,-7.7658767865421835e-02,1.7252864543133434e-02,3.9915247425543754e-03,-5.09359e-09,-1.1390468025345850e-08,8.1740067262416628e-09
|
||||
101,-7.7658867865421824e-02,2.8595894467506877e-03,3.8912202070116031e-03,1.74997e-08,4.4862270844895322e-09,1.8929321853286367e-08
|
||||
102,-7.5014367865421830e-02,-1.1287674302799366e-02,3.7865091728994660e-03,-4.79863e-09,-3.4835463767174474e-10,2.7877991569297541e-08
|
||||
103,-6.9815867865421835e-02,-2.4707633457913880e-02,3.6859245067712987e-03,9.93382e-09,4.2281260540054388e-09,3.4346093439613794e-08
|
||||
104,-6.2238467865421823e-02,-3.6942422358614391e-02,3.5892727851278838e-03,-1.25752e-08,-1.1224900249245446e-08,3.7873854512326242e-08
|
||||
105,-5.2542367865421824e-02,-4.7579319722670266e-02,3.5115587803422610e-03,-2.76710e-09,-2.1410372483895858e-08,3.8244098621104967e-08
|
||||
106,-4.1057467865421721e-02,-5.6250843134089845e-02,3.4402655464282894e-03,-1.27961e-08,-2.7921650200035213e-08,3.5503032166788755e-08
|
||||
107,-2.8173867865421826e-02,-6.2666679483306897e-02,3.3981592515741621e-03,-4.56654e-09,-1.5050389598049598e-08,2.9984827835004247e-08
|
||||
108,-1.4330567865421825e-02,-6.6607056321628472e-02,3.3710599523513185e-03,1.13184e-08,-6.1780382028731926e-09,2.2312035936171329e-08
|
||||
109,-4.4592554218255842e-06,-8.2902983910312561e-02,1.0360781484894943e-03,-2.32658e-08,-3.9490874755037990e-09,8.2377656036439808e-09
|
||||
110,1.9335032134578174e-02,-8.0888012392928504e-02,1.1356712412768921e-03,5.85139e-09,2.6093161158375890e-08,-5.1472655661323397e-09
|
||||
111,3.7824932134578181e-02,-7.4881570219429094e-02,1.1853544014812645e-03,3.20213e-09,1.4896964183094155e-08,-1.6300538633982201e-08
|
||||
112,5.4661132134578176e-02,-6.5158787866318735e-02,1.2533861150110237e-03,-8.00279e-09,-1.2958700559132274e-08,-2.3220312686553366e-08
|
||||
113,6.9107832134578176e-02,-5.2150354991930881e-02,1.3500823018268715e-03,-1.94774e-08,4.6833918749035194e-09,-2.4641227111325155e-08
|
||||
114,8.0535732134578167e-02,-3.6425558084847154e-02,1.4768191590088797e-03,9.71534e-10,-5.4830617177535343e-09,-2.0414135679390215e-08
|
||||
115,8.8442732134578164e-02,-1.8664003949239338e-02,1.6045520360492560e-03,-7.13190e-09,-3.8301838198230336e-09,-1.1648526556225106e-08
|
||||
116,9.2485532134578066e-02,3.5342451116393558e-04,1.7412112964170223e-03,3.13399e-09,2.4962080575410804e-09,-5.6542647389157528e-10
|
||||
117,9.2486132134578167e-02,1.9792008185342602e-02,1.8960167935768713e-03,2.94333e-10,8.3398058286388737e-09,9.9734552793902116e-09
|
||||
118,8.8442732134578164e-02,3.8807562438735940e-02,2.0319779507405045e-03,2.15749e-08,-4.5695766545640423e-09,1.7129062795057832e-08
|
||||
119,8.0535632134578164e-02,5.6567500265332679e-02,2.1697799660351791e-03,-3.22395e-09,1.4329342842807380e-08,1.8772733017067982e-08
|
||||
120,6.9108032134578168e-02,7.2294850584932499e-02,2.2867967365651776e-03,-1.37858e-08,-1.5381116484970723e-08,1.4014422017744066e-08
|
||||
121,5.4660832134578174e-02,8.5303283459320298e-02,2.3834929233808033e-03,2.41472e-09,8.5382776727701681e-11,3.4384354314192704e-09
|
||||
122,3.7825332134578178e-02,9.5024449503419761e-02,2.4615937751650829e-03,2.96320e-09,3.4988864777468209e-08,-1.1041056950366016e-08
|
||||
123,1.9334932134578174e-02,1.0103157088242504e-01,2.5008587455130904e-03,1.83073e-08,3.0047295275749525e-09,-2.6639644561499935e-08
|
||||
124,4.9489945781744151e-06,1.0305084996337002e-01,2.4313174393857384e-03,1.12484e-08,1.9304406113567093e-08,-4.0337921695850654e-08
|
||||
125,-1.9334567865421825e-02,1.0103063377892002e-01,2.5005096939110238e-03,4.80681e-09,1.2327133718631175e-09,-4.9583193335223698e-08
|
||||
126,-3.7824467865421825e-02,9.5026065812430588e-02,2.4515246369107846e-03,1.97097e-08,7.8226649660789715e-09,-5.2721611858024635e-08
|
||||
127,-5.4660767865421823e-02,8.5304220562825203e-02,2.3838419749828699e-03,-1.60118e-08,-7.6483027483293125e-10,-4.9293816495928684e-08
|
||||
128,-6.9107367865421834e-02,7.2293913481427372e-02,2.2864476849631110e-03,-8.61701e-09,-2.2952720171764136e-09,-3.9966467240703988e-08
|
||||
129,-8.0535267865421825e-02,5.6568437368837696e-02,2.1701290176372456e-03,-1.24803e-08,-1.0499087663015782e-08,-2.6261487509148261e-08
|
||||
130,-8.8442467865421828e-02,3.8808499542240957e-02,2.0323270023425710e-03,-5.25047e-09,5.7958610844698815e-09,-1.0159335434149777e-08
|
||||
131,-9.2484967865421833e-02,1.9793624494353540e-02,1.8859476553230170e-03,-1.85430e-08,-1.1469615779827243e-08,6.2557177881723637e-09
|
||||
132,-9.2485767865421828e-02,3.5087109864784249e-04,1.7509313830690321e-03,8.55504e-09,8.9649718487810498e-09,2.1092046312590309e-08
|
||||
133,-8.8442067865421831e-02,-1.8664941052744355e-02,1.6042029844469674e-03,-2.99319e-09,1.4618063790891793e-08,3.2798324726387104e-08
|
||||
134,-8.0535167865421822e-02,-3.6422067568826155e-02,1.4674481239589365e-03,-1.98107e-08,4.9369240306112996e-09,4.0244289162049290e-08
|
||||
135,-6.9107567865421826e-02,-5.2150354991930881e-02,1.3500823018268715e-03,-1.36791e-08,-3.8555720560898319e-09,4.2748436060644409e-08
|
||||
136,-5.4660267865421823e-02,-6.5159724969823751e-02,1.2530370634089572e-03,4.22281e-09,6.1146017320936285e-09,4.0116488698373077e-08
|
||||
137,-3.7824867865421823e-02,-7.4880633115924161e-02,1.1857034530833310e-03,1.12890e-08,-4.1576121321112080e-09,3.2717965764111189e-08
|
||||
138,-1.9334567865421825e-02,-8.0888012392928504e-02,1.1356712412768921e-03,2.68946e-08,1.2601171398359444e-08,2.1548390326045792e-08
|
||||
139,-4.8248354218255840e-06,-9.7884497663315667e-02,-1.5989790935035941e-03,3.92477e-08,-2.4667770696980004e-08,9.4448742023983680e-11
|
||||
140,1.4705932134578175e-02,-9.6899910912513348e-02,-1.4776781036280884e-03,5.58181e-09,-4.5203986556131143e-09,-1.0948492601325037e-08
|
||||
141,2.9137732134578175e-02,-9.3897755878268069e-02,-1.4585691958572955e-03,-1.33284e-08,-2.6814857840533163e-08,-2.0991432676011941e-08
|
||||
142,4.3026632134578177e-02,-8.8965063130579364e-02,-1.4140017537194183e-03,-2.87172e-08,-2.0137433230100162e-08,-2.9218892371518233e-08
|
||||
143,5.6114032134578176e-02,-8.2180549363866678e-02,-1.3732961117902676e-03,3.60589e-09,1.8370279009824171e-08,-3.4875255159332031e-08
|
||||
144,6.8156032134578173e-02,-7.3683654023392109e-02,-1.3030211303208805e-03,-1.09498e-08,1.2057521298517139e-08,-3.7401001335142974e-08
|
||||
145,7.8928932134578175e-02,-6.3622602872452638e-02,-1.2263742896689855e-03,-5.59457e-09,-9.6909001060161096e-09,-3.6472995715758325e-08
|
||||
146,8.8231332134578067e-02,-5.2186080534568469e-02,-1.1496096163110536e-03,-8.24452e-09,-2.0237680241693036e-08,-3.2082981734124177e-08
|
||||
147,9.5890732134578174e-02,-3.9594538663938111e-02,-1.0481289769621593e-03,-1.89636e-09,-3.9930148876731889e-08,-2.4560761636533826e-08
|
||||
148,1.0176223213457818e-01,-2.6073466818775176e-02,-9.5256665203891089e-04,1.43580e-08,-7.3205078218720667e-09,-1.4547626059331697e-08
|
||||
149,1.0573923213457817e-01,-1.1881479998984396e-02,-8.4186838248423435e-04,2.11534e-09,3.2601312744483412e-08,-2.9713539441303356e-09
|
||||
150,1.0774723213457817e-01,2.7201588945229838e-03,-7.2797973682137140e-04,-2.13670e-09,5.8575897397359262e-09,9.0542374502291935e-09
|
||||
151,1.0774623213457817e-01,1.7461753029290622e-02,-6.2598774799171863e-04,-1.39495e-08,-7.5370508810826420e-09,2.0327212117277967e-08
|
||||
152,1.0573923213457817e-01,3.2062454819293054e-02,-5.1244815393114429e-04,-2.25568e-08,6.2643080977715999e-09,2.9680797112914307e-08
|
||||
153,1.0176323213457818e-01,4.6256315846093937e-02,-4.0105178117233464e-04,-6.55023e-09,-2.1025027191445927e-08,3.6115990993849480e-08
|
||||
154,9.5890132134578171e-02,5.9774576380741878e-02,-3.0653661105506380e-04,-7.24414e-10,-4.0047396353515527e-09,3.8890961737035288e-08
|
||||
155,8.8231632134578075e-02,7.2370545870898126e-02,-2.1407795515404615e-04,2.38128e-08,1.3398926185826793e-09,3.7625745356746094e-08
|
||||
156,7.8929132134578167e-02,8.3805451899771441e-02,-1.2724414354181590e-04,1.75471e-09,-1.1597161079064407e-09,3.2318780449718448e-08
|
||||
157,6.8155832134578168e-02,9.3863691740195737e-02,-5.1644457696120583e-05,1.32368e-08,1.0651610390373454e-08,2.3361997045082061e-08
|
||||
158,5.6114232134578175e-02,1.0236246128768037e-01,1.9328626977621610e-05,-6.72517e-09,4.6421323407600430e-09,1.1501955289133216e-08
|
||||
159,4.3026432134578178e-02,1.0914348453837211e-01,6.9405303956049380e-05,-1.59604e-08,9.0018882800529425e-09,-2.2572169510757939e-09
|
||||
160,2.9137632134578175e-02,1.1408222121459780e-01,9.4881624392195718e-05,-1.29995e-08,-9.2718975647077575e-09,-1.6745392353117873e-08
|
||||
161,1.4705932134578175e-02,1.1708182283632698e-01,1.2371061881522039e-04,-9.76829e-09,1.2092951319629542e-08,-3.0755876594911620e-08
|
||||
162,5.3139045781744155e-06,1.1806755345368521e-01,2.1342899280130112e-05,2.86690e-08,2.1940651748488564e-08,-4.3150686265526683e-08
|
||||
163,-1.4705467865421826e-02,1.1707994862931706e-01,1.2301251561108728e-04,-1.10635e-08,-1.3067241666832461e-08,-5.2990206495631032e-08
|
||||
164,-2.9137267865421826e-02,1.1407966780208179e-01,1.0460171104420546e-04,1.12939e-08,-1.1956645264316982e-08,-5.9565959062207187e-08
|
||||
165,-4.3026067865421722e-02,1.0914442164187704e-01,6.9754355558115932e-05,-1.21618e-08,1.7992089243870065e-08,-6.2490682411920180e-08
|
||||
166,-5.6113567865421821e-02,1.0236407759669132e-01,9.2594887233232726e-06,1.25476e-08,-2.5772708896850578e-09,-6.1683546021105989e-08
|
||||
167,-6.8155667865421835e-02,9.3864628843700657e-02,-5.1295406094054030e-05,5.18502e-09,1.8908501231639146e-08,-5.7353238118760181e-08
|
||||
168,-7.8928467865421834e-02,8.3804514796266424e-02,-1.2759319514388245e-04,-2.10980e-09,-5.9606493394716289e-09,-4.9950061755455818e-08
|
||||
169,-8.8230867865421725e-02,7.2369608767393109e-02,-2.1442700675611270e-04,-5.49043e-10,1.9598455491908776e-08,-4.0099258000319341e-08
|
||||
170,-9.5890267865421833e-02,5.9776450587751814e-02,-3.0583850785093070e-04,-8.81954e-09,1.7710228260227977e-09,-2.8535156570405421e-08
|
||||
171,-1.0176176786542183e-01,4.6257932155104944e-02,-4.1112091942618889e-04,6.00828e-09,3.4781632844717426e-09,-1.6024758412666007e-08
|
||||
172,-1.0573876786542183e-01,3.2062454819293054e-02,-5.1244815393114429e-04,-6.12831e-09,2.1075667322863121e-08,-3.3121393340832470e-09
|
||||
173,-1.0774676786542182e-01,1.7460136720279656e-02,-6.1591860973764234e-04,-1.65081e-08,-4.8727976058648603e-09,8.9128945997010069e-09
|
||||
174,-1.0774576786542182e-01,2.7227123070390491e-03,-7.3769982347338114e-04,-1.72129e-08,-1.2676262386715501e-08,2.0053883083025492e-08
|
||||
175,-1.0573876786542183e-01,-1.1881479998984396e-02,-8.4186838248423435e-04,2.32464e-09,-6.0418490043719526e-09,2.9617369029593586e-08
|
||||
176,-1.0176276786542184e-01,-2.6075083127786225e-02,-9.4249751378483460e-04,2.12693e-08,6.0926248247700747e-09,3.7200203512164339e-08
|
||||
177,-9.5889667865421829e-02,-3.9595475767443156e-02,-1.0484780285642259e-03,2.15498e-09,-2.1089689551740181e-08,4.2499332895045867e-08
|
||||
178,-8.8231067865421828e-02,-5.2188633947084340e-02,-1.1398895296590439e-03,-1.59798e-09,8.5862912590103702e-09,4.5302360963262180e-08
|
||||
179,-7.8928567865421823e-02,-6.3621665768947705e-02,-1.2260252380669190e-03,3.84988e-09,-7.2568762524342183e-09,4.5492522147784051e-08
|
||||
180,-6.8155267865421823e-02,-7.3683654023392109e-02,-1.3030211303208805e-03,1.75909e-08,1.5460241047632221e-08,4.3055361627571538e-08
|
||||
181,-5.6113867865421822e-02,-8.2183102776382549e-02,-1.3635760251384799e-03,2.95493e-09,-3.2249026963060329e-08,3.8095861327231278e-08
|
||||
182,-4.3026067865421722e-02,-8.8961572614558421e-02,-1.4233727887691394e-03,-5.53491e-09,-1.0594495860636690e-08,3.0854188279377367e-08
|
||||
183,-2.9137167865421826e-02,-9.3898692981773085e-02,-1.4589182474593620e-03,1.49009e-08,-2.2715557189071764e-08,2.1717914054812063e-08
|
||||
184,-1.4705567865421825e-02,-9.6898973809008443e-02,-1.4773290520260218e-03,5.77505e-09,-1.1128738292954191e-08,1.1230598074466331e-08
|
||||
185,-6.6513854218255843e-06,-1.1285791208519477e-01,-4.5938396162426010e-03,2.06856e-08,3.3358880428938807e-09,-1.1187555486116008e-08
|
||||
186,1.4825032134578075e-02,-1.1198083433946784e-01,-4.5019123191500920e-03,2.46804e-09,-2.4140584316573416e-09,-2.2982940317228197e-08
|
||||
187,2.9434032134578174e-02,-1.0930195444697180e-01,-4.4858337128674819e-03,-1.64927e-08,-3.4128202502103817e-09,-3.3706249375419489e-08
|
||||
188,4.3612932134578175e-02,-1.0488147936255096e-01,-4.4613178401520237e-03,-1.84282e-08,-2.1441098942916617e-09,-4.2616328294297476e-08
|
||||
189,5.7156932134578176e-02,-9.8787723153579227e-02,-4.4111255537253591e-03,2.22369e-08,2.7394986427737716e-09,-4.9007667942029156e-08
|
||||
190,6.9866932134578077e-02,-9.1103830134001723e-02,-4.3555552047163104e-03,2.32166e-08,-1.3584281518292745e-08,-5.2279292031448204e-08
|
||||
191,8.1558032134578171e-02,-8.1945648751947930e-02,-4.2844020360950363e-03,-2.41800e-09,9.5207747802219816e-09,-5.2018214709595444e-08
|
||||
192,9.2060332134578177e-02,-7.1444279009626188e-02,-4.2038133579240800e-03,-5.16127e-09,8.9256513599311276e-09,-4.8035394350991454e-08
|
||||
193,1.0122023213457818e-01,-5.9753053495365555e-02,-4.1175464772575943e-03,1.96846e-08,5.1861941693883268e-09,-4.0409213160218704e-08
|
||||
194,1.0890323213457817e-01,-4.7040977659080885e-02,-4.0245253369277645e-03,-1.49111e-08,7.4961197679282223e-09,-2.9497851564065348e-08
|
||||
195,1.1499923213457808e-01,-3.3499289536808086e-02,-3.9212838767583857e-03,-1.20514e-08,3.9925450381688013e-09,-1.5936605655372617e-08
|
||||
196,1.1941923213457817e-01,-1.9322038475098308e-02,-3.8054031913790087e-03,8.66517e-09,2.7411026978667053e-08,-5.8834175124187965e-10
|
||||
197,1.2209523213457817e-01,-4.7131606515498081e-03,-3.6994893743576007e-03,-5.31506e-09,-1.1730981233949568e-09,1.5502774299868249e-08
|
||||
198,1.2299223213457817e-01,1.0110382795659262e-02,-3.5883153274602897e-03,-6.89880e-11,-4.1361981267056833e-09,3.1193316582102179e-08
|
||||
199,1.2209423213457817e-01,2.4938353862394458e-02,-3.4861632640104112e-03,-2.20146e-09,-1.0149494274543742e-08,4.5334030496713915e-08
|
||||
200,1.1941723213457817e-01,3.9547231685942735e-02,-3.3802494469890032e-03,4.54690e-09,-1.3903862762244290e-08,5.6855548490399900e-08
|
||||
201,1.1499923213457808e-01,5.3726099056663687e-02,-3.2744378998641466e-03,1.89578e-08,-1.6762172496855256e-08,6.4867853987420669e-08
|
||||
202,1.0890323213457817e-01,6.7268724282441517e-02,-3.1708473880922572e-03,1.22012e-09,-1.1971483827557744e-08,6.8729103957942418e-08
|
||||
203,1.0121923213457808e-01,7.9979863015221059e-02,-3.0781752993644940e-03,8.67341e-09,-9.5201575576043934e-10,6.8110713183564717e-08
|
||||
204,9.2060432134578166e-02,9.1668535116965766e-02,-2.9821883320464426e-03,-2.76144e-08,4.5027236973678438e-09,6.3009271722136466e-08
|
||||
205,8.1558332134578165e-02,1.0216990485928755e-01,-2.9015996538750422e-03,-6.56203e-10,6.8884808465453619e-10,5.3761550715468869e-08
|
||||
206,6.9867332134578075e-02,1.1133251386086720e-01,-2.8394684687018668e-03,-1.13577e-08,-1.0311229632164388e-08,4.1009295060299897e-08
|
||||
207,5.7157432134578176e-02,1.1901385346792867e-01,-2.7741780330403643e-03,-1.64166e-08,1.2124862203743244e-08,2.5626475509840976e-08
|
||||
208,4.3613832134578076e-02,1.2510854678040545e-01,-2.7236366950118551e-03,-1.18281e-08,9.9593762453715291e-09,8.6769761445667439e-09
|
||||
209,2.9434532134578174e-02,1.2952902186482632e-01,-2.6991208222963969e-03,-4.50041e-09,-2.1503520565921054e-09,-8.6978843601985330e-09
|
||||
210,1.4825332134578175e-02,1.3220253703429152e-01,-2.6743692841679767e-03,1.23366e-08,-8.7943279645965585e-09,-2.5374239695589961e-08
|
||||
211,7.1221445781744156e-06,1.3308298524007420e-01,-2.7519254375918401e-03,-1.78656e-08,7.3869440051843203e-09,-4.0308782978851673e-08
|
||||
212,-1.4824667865421826e-02,1.3220441124130150e-01,-2.6736711809638436e-03,4.12585e-10,2.5318739481981916e-09,-5.2634425780464145e-08
|
||||
213,-2.9433567865421825e-02,1.2952714765781631e-01,-2.6998189255005300e-03,-6.52143e-09,-1.9505270558607811e-08,-6.1712660078481112e-08
|
||||
214,-4.3612567865421822e-02,1.2510922598591148e-01,-2.7340548848679980e-03,-4.41353e-09,-9.1564693434114706e-10,-6.7154330706050626e-08
|
||||
215,-5.7156467865421820e-02,1.1901453267343465e-01,-2.7845962228967291e-03,1.35065e-08,3.5294407845204634e-09,-6.8836760774568576e-08
|
||||
216,-6.9866467865421736e-02,1.1133063965385726e-01,-2.8401665719059999e-03,7.24804e-09,-1.2118265239825079e-08,-6.6884435619849547e-08
|
||||
217,-8.1557667865421832e-02,1.0217152116829850e-01,-2.9116687921293405e-03,1.80138e-08,2.5570589304106822e-09,-6.1637960094769857e-08
|
||||
218,-9.2059967865421824e-02,9.1667598013460749e-02,-2.9825373836485092e-03,-2.08108e-09,-1.9595450610578111e-08,-5.3602955775017964e-08
|
||||
219,-1.0121976786542183e-01,7.9977309602705035e-02,-3.0684552127124842e-03,-9.37386e-09,1.7997500722357833e-08,-4.3402234927253369e-08
|
||||
220,-1.0890276786542183e-01,6.7269661385946436e-02,-3.1704983364901906e-03,-3.01522e-09,1.6809021406051890e-08,-3.1712427447700892e-08
|
||||
221,-1.1499876786542174e-01,5.3724482747652846e-02,-3.2643687616098482e-03,3.26626e-09,-3.4012334857278391e-09,-1.9211746911274562e-08
|
||||
222,-1.1941876786542183e-01,3.9546552480436911e-02,-3.3698312571328604e-03,2.37832e-09,4.8954780383834447e-09,-6.5537963971404266e-09
|
||||
223,-1.2209476786542182e-01,2.4936737553383381e-02,-3.4760941257563349e-03,-1.46060e-08,-3.2459978681049139e-08,5.6808011644500810e-09
|
||||
224,-1.2299176786542183e-01,1.0111319899164278e-02,-3.5879662758582231e-03,1.21883e-09,-1.5575201576137153e-08,1.6987612649631921e-08
|
||||
225,-1.2209376786542182e-01,-4.7106072390339371e-03,-3.7092094610096105e-03,3.07408e-09,-3.9569984507422290e-09,2.6946828362180903e-08
|
||||
226,-1.1941676786542182e-01,-1.9320422166087231e-02,-3.8154723296330850e-03,3.39086e-08,-1.4440888756003245e-08,3.5229725106826154e-08
|
||||
227,-1.1499776786542183e-01,-3.3500226640313213e-02,-3.9216329283604523e-03,2.52798e-08,9.6224255080022644e-09,4.1572464494060943e-08
|
||||
228,-1.0890276786542183e-01,-4.7041914762586012e-02,-4.0248743885298310e-03,-1.14926e-08,2.6902200041275984e-08,4.5780436289668549e-08
|
||||
229,-1.0121876786542174e-01,-5.9753053495365555e-02,-4.1175464772575943e-03,-3.87085e-09,-1.5848184816974848e-08,4.7719425455085086e-08
|
||||
230,-9.2059867865421835e-02,-7.1444279009626188e-02,-4.2038133579240800e-03,-1.97115e-08,-1.1280051648370103e-08,4.7310809187226562e-08
|
||||
231,-8.1557767865421835e-02,-8.1944711648442997e-02,-4.2840529844929698e-03,-7.95641e-09,3.1713263434616978e-09,4.4540926169927307e-08
|
||||
232,-6.9866867865421733e-02,-9.1102893030496679e-02,-4.3552061531142439e-03,4.25098e-09,2.1700617935001856e-08,3.9470983705697077e-08
|
||||
233,-5.7156867865421825e-02,-9.8786786050074210e-02,-4.4107765021232925e-03,1.62420e-08,-1.6464534822453384e-08,3.2251045053787068e-08
|
||||
234,-4.3613267865421822e-02,-1.0488309567156204e-01,-4.4512487018977254e-03,-9.82025e-09,3.3543439727980682e-09,2.3138083850074489e-08
|
||||
235,-2.9434067865421826e-02,-1.0930195444697180e-01,-4.4858337128674819e-03,-8.81090e-09,2.4531633267880760e-08,1.2507606759628683e-08
|
||||
236,-1.4824867865421826e-02,-1.1197734382344685e-01,-4.5112833542000352e-03,-2.89225e-08,-2.2248050973024451e-08,8.5664299611133448e-10
|
||||
237,2.3213457891473784e-07,-1.2783421452001106e-01,-7.9419247974941154e-03,-2.19100e-09,-1.7255114370212526e-08,-2.5488212138184629e-08
|
||||
238,1.4668232134578074e-02,-1.2706464577935958e-01,-7.8793711931846033e-03,-1.43100e-08,-5.7056874081425066e-09,-3.7692600040265958e-08
|
||||
239,2.9168632134578074e-02,-1.2472939940772340e-01,-7.8632347821778747e-03,-7.13118e-09,-7.0119651269617583e-09,-4.8787918912516396e-08
|
||||
240,4.3338632134578177e-02,-1.2086253795029836e-01,-7.8421760766043125e-03,-1.18107e-08,1.0945176172093028e-08,-5.8121112561477081e-08
|
||||
241,5.7016932134578174e-02,-1.1551389130235698e-01,-7.8027421386017703e-03,-1.26965e-09,3.2549889435316749e-09,-6.5060237827976639e-08
|
||||
242,7.0051332134578176e-02,-1.0874385539572620e-01,-7.7460868393897098e-03,-2.36754e-08,-2.3907508804556475e-08,-6.9038436723462109e-08
|
||||
243,8.2291232134578174e-02,-1.0062245509528131e-01,-7.6876218076675773e-03,-1.97601e-08,6.9422209214970828e-09,-6.9591507119220937e-08
|
||||
244,9.3598332134578174e-02,-9.1250545193071908e-02,-7.6115574607722447e-03,2.86795e-08,-7.7790485489097539e-09,-6.6430280090938228e-08
|
||||
245,1.0384523213457807e-01,-8.0727879968134186e-02,-7.5337078372113009e-03,-1.73407e-08,1.7165920755572865e-08,-5.9441361976606994e-08
|
||||
246,1.1291523213457817e-01,-6.9172439973606697e-02,-7.4553335246179131e-03,-1.47729e-08,-8.4531691657796413e-09,-4.8731015946595466e-08
|
||||
247,1.2070623213457816e-01,-5.6723922552750550e-02,-7.3537706247004397e-03,2.47420e-08,-8.5747666566746675e-09,-3.4640056989429478e-08
|
||||
248,1.2712923213457816e-01,-4.3513943503771912e-02,-7.2567009304380647e-03,3.91292e-08,7.2886677658572433e-09,-1.7711634722058817e-08
|
||||
249,1.3211223213457818e-01,-2.9698130929516842e-02,-7.1473944207747220e-03,-1.57802e-08,1.0276090970292139e-08,1.2996953578273255e-09
|
||||
250,1.3559623213457817e-01,-1.5429396110807347e-02,-7.0507938340793608e-03,-4.96006e-09,6.0355878766112386e-09,2.1485219979405338e-08
|
||||
251,1.3754623213457817e-01,-8.7154318403570574e-04,-6.9425433722569707e-03,4.60052e-09,-2.2703827660653850e-08,4.1831059057519653e-08
|
||||
252,1.3793723213457817e-01,1.3809912916904310e-02,-6.8309380131885700e-03,2.32844e-08,7.2469510206504089e-09,6.1267089170281065e-08
|
||||
253,1.3676623213457817e-01,2.8452268568633449e-02,-6.7232255799498652e-03,-1.32923e-08,-1.3931412628062036e-08,7.8755141757432440e-08
|
||||
254,1.3404423213457817e-01,4.2885581217731936e-02,-6.6186790669748863e-03,-3.30372e-09,3.1690061648034997e-09,9.3325385275938748e-08
|
||||
255,1.2980423213457817e-01,5.6944851726303522e-02,-6.5040589692288986e-03,1.04702e-08,-1.9176716124577939e-08,1.0417134245443466e-07
|
||||
256,1.2409323213457817e-01,7.0478105917031228e-02,-6.4039589734781188e-03,5.85600e-09,6.0116500034968345e-09,1.1069765048842072e-07
|
||||
257,1.1697523213457817e-01,8.3327583582060161e-02,-6.3131144033294895e-03,-5.06656e-09,-1.0864328227028217e-08,1.1253529849609529e-07
|
||||
258,1.0853423213457818e-01,9.5346769755594876e-02,-6.2220719631647103e-03,-1.80250e-09,-1.7276199808076631e-08,1.0960081872810529e-07
|
||||
259,9.8860832134578178e-02,1.0639706760738743e-01,-6.1397713758621908e-03,-1.85189e-08,9.6146625248223538e-09,1.0205681529921145e-07
|
||||
260,8.8069132134578176e-02,1.1636143368780438e-01,-6.0671241774534757e-03,-3.20804e-09,3.2547842350639114e-09,9.0373759502396667e-08
|
||||
261,7.6278632134578167e-02,1.2511933403119138e-01,-5.9956708689197225e-03,-3.58805e-09,-8.2698419976670676e-09,7.5200162531388903e-08
|
||||
262,6.3625432134578067e-02,1.3257663697954222e-01,-5.9391311791556767e-03,3.12717e-09,1.9546373355694329e-08,5.7404623210049268e-08
|
||||
263,5.0249732134578076e-02,1.3864441218837320e-01,-5.8879450961293323e-03,-7.47987e-09,-5.9352827240441517e-09,3.7948256125650779e-08
|
||||
264,3.6304932134578076e-02,1.4325732031033384e-01,-5.8557789905295810e-03,6.35130e-09,4.3246811614030630e-10,1.7878215779787963e-08
|
||||
265,2.1949132134578074e-02,1.4636433644864752e-01,-5.8402962175552187e-03,1.36406e-08,3.6220777695586505e-09,-1.7744863184492399e-09
|
||||
266,7.3445921345781746e-03,1.4792500174309120e-01,-5.8245533233229896e-03,2.09353e-09,-8.3464706727593429e-09,-2.0058718986350713e-08
|
||||
267,-7.3441078654217255e-03,1.4792312753608131e-01,-5.8252514265271227e-03,4.73792e-09,6.3458793507259103e-09,-3.6137648202696482e-08
|
||||
268,-2.1948667865421725e-02,1.4636339934514250e-01,-5.8406452691575073e-03,7.15966e-10,-7.1852334067486261e-09,-4.9338281601548633e-08
|
||||
269,-3.6304167865421823e-02,1.4325893661934488e-01,-5.8658481287841013e-03,1.13672e-12,-5.5444829139959704e-09,-5.9199134819427994e-08
|
||||
270,-5.0248967865421823e-02,1.3864696560088927e-01,-5.8976651827813420e-03,-9.71889e-09,1.8353851977619612e-08,-6.5463151448723711e-08
|
||||
271,-6.3624367865421833e-02,1.3257569987603721e-01,-5.9394802307579653e-03,4.26296e-09,-1.4015972948377039e-08,-6.8086557676348503e-08
|
||||
272,-7.6278167865421825e-02,1.2512027113469640e-01,-5.9953218173176559e-03,-1.31038e-09,-3.2498478878352901e-08,-6.7215977707779891e-08
|
||||
273,-8.8068867865421827e-02,1.1636237079130929e-01,-6.0667751258514091e-03,2.81935e-08,2.1698204861684644e-08,-6.3168838691890296e-08
|
||||
274,-9.8860867865421823e-02,1.0639894181439737e-01,-6.1390732726580577e-03,2.11920e-08,3.4337680707914592e-08,-5.6393014699600045e-08
|
||||
275,-1.0853376786542183e-01,9.5347706859099907e-02,-6.2217229115624217e-03,5.19709e-09,-5.4586961334258319e-09,-4.7425745662811022e-08
|
||||
276,-1.1697576786542183e-01,8.3327583582060161e-02,-6.3131144033294895e-03,-1.02779e-08,-2.6087866080057566e-08,-3.6853682908168382e-08
|
||||
277,-1.2409276786542182e-01,7.0477168813526322e-02,-6.4043080250801854e-03,-1.49834e-08,-4.1820039782004411e-09,-2.5272564889455240e-08
|
||||
278,-1.2980476786542183e-01,5.6944851726303522e-02,-6.5040589692288986e-03,1.60439e-08,-3.8552247673179006e-09,-1.3257030807218182e-08
|
||||
279,-1.3404376786542183e-01,4.2883027805215967e-02,-6.6089589803230986e-03,3.53905e-09,-2.5581425117054510e-09,-1.3345112894189010e-09
|
||||
280,-1.3676576786542183e-01,2.8452268568633449e-02,-6.7232255799498652e-03,6.46720e-09,-1.4996565290247008e-08,1.0037525025256075e-08
|
||||
281,-1.3793676786542183e-01,1.3810850020409215e-02,-6.8305889615865034e-03,-2.34984e-08,7.8062869238618224e-09,2.0474165819810375e-08
|
||||
282,-1.3754576786542183e-01,-8.7248028754063900e-04,-6.9428924238590373e-03,1.24920e-08,7.0647508348630207e-09,2.9662539066316000e-08
|
||||
283,-1.3559576786542182e-01,-1.5429396110807347e-02,-7.0507938340793608e-03,6.12073e-09,-2.0128607999999846e-08,3.7356168640967402e-08
|
||||
284,-1.3211176786542184e-01,-2.9695577517000749e-02,-7.1571145074267317e-03,-1.49567e-08,9.4176953970965274e-09,4.3371037497085765e-08
|
||||
285,-1.2712876786542182e-01,-4.3513943503771912e-02,-7.2567009304380647e-03,-6.35111e-09,2.7648244091902878e-08,4.7569835262906896e-08
|
||||
286,-1.2070576786542182e-01,-5.6723922552750550e-02,-7.3537706247004397e-03,3.55209e-09,2.3161865006863103e-09,4.9852596772406122e-08
|
||||
287,-1.1291576786542183e-01,-6.9175930489627641e-02,-7.4459624895681920e-03,7.06691e-10,-4.5435361495993057e-09,5.0153621461895148e-08
|
||||
288,-1.0384476786542172e-01,-8.0724389452113188e-02,-7.5430788722614661e-03,-3.93534e-09,-1.9126848826321577e-09,4.8438823473890742e-08
|
||||
289,-9.3598067865421825e-02,-9.1250545193071908e-02,-7.6115574607722447e-03,-1.39392e-09,8.2870822468901340e-09,4.4708960120644697e-08
|
||||
290,-8.2290967865421824e-02,-1.0062245509528131e-01,-7.6876218076675773e-03,-3.39396e-09,-2.3310947082892599e-08,3.9010504816663790e-08
|
||||
291,-7.0050867865421834e-02,-1.0874385539572620e-01,-7.7460868393897098e-03,2.05491e-09,2.2142288380009046e-09,3.1440698737144286e-08
|
||||
292,-5.7017067865421822e-02,-1.1551295419885207e-01,-7.8023930869997038e-03,1.98200e-08,-5.2592787879230353e-09,2.2174335507154335e-08
|
||||
293,-4.3338367865421820e-02,-1.2086253795029836e-01,-7.8421760766043125e-03,-3.45711e-08,2.4888922287969004e-08,1.1457587765646486e-08
|
||||
294,-2.9167867865421825e-02,-1.2472939940772340e-01,-7.8632347821778747e-03,-3.19021e-09,-2.3459860138054240e-09,-3.6741878434135979e-10
|
||||
295,-1.4667467865421826e-02,-1.2706558288286449e-01,-7.8797202447866699e-03,2.37750e-09,2.2465290190985984e-08,-1.2860603533626592e-08
|
||||
296,2.3372016817441584e-07,-1.3396130849187113e-01,-9.3064186450417807e-03,3.98683e-09,-1.4866622250782638e-08,-3.2095014400896692e-08
|
||||
297,1.4817832134578175e-02,-1.3319396634471972e-01,-9.2980502996258263e-03,-5.00943e-09,7.9099739764155928e-09,-4.4591122320739902e-08
|
||||
298,2.9477932134578173e-02,-1.3090880776635525e-01,-9.2792281922160491e-03,-2.36618e-08,4.3021001926689430e-09,-5.5920597443587682e-08
|
||||
299,4.3814432134578175e-02,-1.2709671961972682e-01,-9.2572290482495490e-03,4.41787e-09,-1.1705464134873910e-08,-6.5382280604920523e-08
|
||||
300,5.7695732134578175e-02,-1.2187048114444973e-01,-9.2100337144320754e-03,2.32662e-08,2.3894027196456600e-09,-7.2443401303034475e-08
|
||||
301,7.0965032134578165e-02,-1.1523904206806709e-01,-9.1623181380995344e-03,-2.06601e-08,1.6331788395007580e-08,-7.6467947938558047e-08
|
||||
302,8.3496432134578177e-02,-1.0729601825258714e-01,-9.1062675652302527e-03,1.16352e-08,-4.3612498526503830e-09,-7.7018796488143139e-08
|
||||
303,9.5111332134578078e-02,-9.8066453594645914e-02,-9.0405391476222619e-03,-4.42501e-09,-2.2789564268299093e-08,-7.3681769275575704e-08
|
||||
304,1.0573323213457816e-01,-8.7713730923128258e-02,-8.9619625184953478e-03,-8.25996e-10,-2.3655910072077456e-10,-6.6405623698921072e-08
|
||||
305,1.1523523213457817e-01,-7.6324227170001840e-02,-8.8706977524690700e-03,-1.41818e-08,-1.2155013661834007e-08,-5.5214525901431917e-08
|
||||
306,1.2352723213457817e-01,-6.4024614717948708e-02,-8.7819141430536263e-03,-4.50489e-09,-4.6110951841511910e-09,-4.0383286925981623e-08
|
||||
307,1.3050123213457818e-01,-5.0931679118603412e-02,-8.6857559848221300e-03,1.75107e-08,-1.0989307131919383e-09,-2.2396338484224297e-08
|
||||
308,1.3609223213457816e-01,-3.7190319028749752e-02,-8.5828391204101351e-03,7.84796e-09,-2.2973953246146550e-08,-1.9515120236951224e-09
|
||||
309,1.4021623213457818e-01,-2.2942621794657253e-02,-8.4727322376463299e-03,2.33330e-08,-2.1761798097392647e-08,2.0050456248634912e-08
|
||||
310,1.4287523213457817e-01,-8.3503539361997337e-03,-8.3623341080043545e-03,1.58589e-08,6.4931061777370457e-09,4.2670098774676834e-08
|
||||
311,1.4402023213457818e-01,6.4378374758186363e-03,-8.2536567805282512e-03,5.91419e-09,-7.0406585668104743e-09,6.4823635931198136e-08
|
||||
312,1.4366823213457816e-01,2.1267003544057611e-02,-8.1403884240180968e-03,2.34896e-08,-3.4545328786280880e-08,8.5515325665320805e-08
|
||||
313,1.4176823213457818e-01,3.5980063266168441e-02,-8.0276825519369766e-03,5.91293e-09,1.0571305236347308e-08,1.0358639185955483e-07
|
||||
314,1.3836323213457807e-01,5.0419935639801877e-02,-7.9206926777473097e-03,1.11524e-08,3.6686318374752648e-09,1.1817886377416969e-07
|
||||
315,1.3349323213457817e-01,6.4437973594153763e-02,-7.8214308504935826e-03,-3.99461e-09,-9.6153991282746201e-09,1.2857701450146812e-07
|
||||
316,1.2716323213457817e-01,7.7854184335248086e-02,-7.7222423907736815e-03,8.96326e-10,-1.7736790312762159e-08,1.3404599493444996e-07
|
||||
317,1.1952823213457817e-01,9.0567455173036659e-02,-7.6181049573833537e-03,-9.39382e-09,1.1257753106047615e-08,1.3469306949229527e-07
|
||||
318,1.1062523213457817e-01,1.0243143455123244e-01,-7.5315179274768607e-03,1.33290e-08,4.7055107681708565e-09,1.3035464002692426e-07
|
||||
319,1.0057923213457808e-01,1.1334969529731173e-01,-7.4557137018391728e-03,-1.58709e-08,3.2092001483406730e-08,1.2146147818391514e-07
|
||||
320,8.9432632134578166e-02,1.2314224461729870e-01,-7.3830376010683985e-03,1.05377e-08,5.6596492127928161e-09,1.0817232395373920e-07
|
||||
321,7.7339232134578176e-02,1.3173744133730678e-01,-7.3188321156099079e-03,-2.56794e-09,5.2220926148385739e-09,9.1402355495499945e-08
|
||||
322,6.4410732134578166e-02,1.3900725466364161e-01,-7.2574301592611690e-03,1.57759e-08,-2.2484035290317975e-09,7.1920739761188069e-08
|
||||
323,5.0819832134578177e-02,1.4494861538778941e-01,-7.2106461282870349e-03,1.01137e-08,1.1001404864050589e-08,5.0987864252465286e-08
|
||||
324,3.6690732134578179e-02,1.4946202712871259e-01,-7.1835268197368851e-03,2.45228e-08,8.4194644450322948e-09,2.9512207285078146e-08
|
||||
325,2.2176932134578175e-02,1.5253301202632941e-01,-7.1601225763273657e-03,9.84303e-09,1.6859868356391572e-08,8.5901965983783283e-09
|
||||
326,7.4177321345781739e-03,1.5404614294001751e-01,-7.1514140723438757e-03,-2.11743e-08,-7.0218584107937999e-09,-1.1002319941067381e-08
|
||||
327,-7.4164978654218255e-03,1.5402016193987661e-01,-7.1504202757439739e-03,-9.01813e-10,-5.8646369010705793e-09,-2.8336958936394408e-08
|
||||
328,-2.2170567865421827e-02,1.5249484868062382e-01,-7.1636664505549952e-03,-1.57861e-08,-6.4531876693626365e-09,-4.2697674250491020e-08
|
||||
329,-3.6689367865421721e-02,1.4945921581819765e-01,-7.1845739745430848e-03,-6.98087e-09,1.0651551118538831e-08,-5.3664913501184716e-08
|
||||
330,-5.0830567865421825e-02,1.4498183531797126e-01,-7.2196147535281696e-03,2.03552e-08,2.0182065261236680e-08,-6.0947066913489324e-08
|
||||
331,-6.4420367865421824e-02,1.3902855014625756e-01,-7.2601692138714036e-03,8.58714e-09,-6.1802634429637786e-09,-6.4566161564002379e-08
|
||||
332,-7.7329567865421833e-02,1.3171989426871092e-01,-7.3146968545914071e-03,-9.41411e-09,-5.7214077236136156e-09,-6.4606217716160477e-08
|
||||
333,-8.9433567865421823e-02,1.2314318172080363e-01,-7.3826885494663319e-03,-1.36541e-08,4.2304025340642048e-09,-6.1364450445672987e-08
|
||||
334,-1.0057976786542183e-01,1.1335063240081675e-01,-7.4553646502371063e-03,4.41552e-10,-3.3102370799768461e-09,-5.5304294890356589e-08
|
||||
335,-1.1062476786542183e-01,1.0243143455123244e-01,-7.5315179274768607e-03,-1.63862e-08,1.2823502886276480e-08,-4.6970379173212270e-08
|
||||
336,-1.1952776786542182e-01,9.0567455173036659e-02,-7.6181049573833537e-03,-9.03979e-09,-3.0329879508652363e-08,-3.6883331576176510e-08
|
||||
337,-1.2716276786542183e-01,7.7854184335248086e-02,-7.7222423907736815e-03,4.20255e-09,-1.1135144033400851e-08,-2.5667917532306125e-08
|
||||
338,-1.3349276786542183e-01,6.4437973594153763e-02,-7.8214308504935826e-03,1.55613e-08,-1.0538605764217594e-08,-1.3860607224062485e-08
|
||||
339,-1.3836276786542173e-01,5.0419935639801877e-02,-7.9206926777473097e-03,8.19960e-09,-3.1253587362319217e-08,-2.0652841803841623e-09
|
||||
340,-1.4176776786542183e-01,3.5980063266168441e-02,-8.0276825519369766e-03,-3.08621e-08,-1.2979541995281465e-08,9.2868488216843864e-09
|
||||
341,-1.4366776786542182e-01,2.1267003544057611e-02,-8.1403884240180968e-03,4.09961e-09,-1.2326518630793437e-08,1.9800193341896710e-08
|
||||
342,-1.4401976786542184e-01,6.4378374758186363e-03,-8.2536567805282512e-03,9.70242e-10,-2.7087403206328851e-09,2.9139163107826711e-08
|
||||
343,-1.4287476786542183e-01,-8.3503539361997337e-03,-8.3623341080043545e-03,5.57482e-09,1.4990879218795025e-08,3.7098449886149246e-08
|
||||
344,-1.4021576786542184e-01,-2.2942621794657253e-02,-8.4727322376463299e-03,2.17692e-08,-3.3007971320656406e-09,4.3468041989042553e-08
|
||||
345,-1.3609176786542182e-01,-3.7190319028749752e-02,-8.5828391204101351e-03,-2.77904e-08,-1.3884346405809395e-08,4.8122897875617229e-08
|
||||
346,-1.3050076786542184e-01,-5.0931679118603412e-02,-8.6857559848221300e-03,-7.96175e-09,-7.6713819775756552e-10,5.0940677762821407e-08
|
||||
347,-1.2352676786542183e-01,-6.4024614717948708e-02,-8.7819141430536263e-03,7.95910e-09,1.4131641550228278e-08,5.1870605479608205e-08
|
||||
348,-1.1523476786542183e-01,-7.6324227170001840e-02,-8.8706977524690700e-03,-2.13030e-08,-1.3145488864058311e-08,5.0871200402604948e-08
|
||||
349,-1.0573276786542182e-01,-8.7713730923128258e-02,-8.9619625184953478e-03,1.98800e-08,-1.2264812611797039e-08,4.7934316723497664e-08
|
||||
350,-9.5110867865421736e-02,-9.8066453594645914e-02,-9.0405391476222619e-03,4.96151e-09,7.5232673786372184e-09,4.3072437920708654e-08
|
||||
351,-8.3495967865421836e-02,-1.0729601825258714e-01,-9.1062675652302527e-03,1.14029e-08,-2.9839379431181887e-09,3.6334598879842132e-08
|
||||
352,-7.0964667865421827e-02,-1.1523904206806709e-01,-9.1623181380995344e-03,-7.69022e-09,8.7211700440928547e-09,2.7846606493447657e-08
|
||||
353,-5.7695267865421819e-02,-1.2187048114444973e-01,-9.2100337144320754e-03,1.09608e-08,-1.8381282756307918e-10,1.7767941822382034e-08
|
||||
354,-4.3813967865421820e-02,-1.2709671961972682e-01,-9.2572290482495490e-03,1.43916e-08,9.4509230512345481e-09,6.3599656064342485e-09
|
||||
355,-2.9477467865421825e-02,-1.3090880776635525e-01,-9.2792281922160491e-03,3.13671e-09,-1.3941784834442998e-08,-6.0765894557626028e-09
|
||||
356,-1.4817367865421826e-02,-1.3319396634471972e-01,-9.2980502996258263e-03,3.15722e-09,-1.6277187084142273e-10,-1.9058178740970243e-08
|
||||
|
@@ -21,11 +21,16 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 124980,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 40.21839241800354,
|
||||
"rms_nm_with_noise": 40.21839241800354,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.14873971447113,
|
||||
"noise_rms_nm": 0.0,
|
||||
"include_lateral": true,
|
||||
"seed": 42,
|
||||
"inner_radius_mm": 0.0
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
{
|
||||
"suite": "Zernike Pipeline Validation",
|
||||
"generated": "2026-03-09",
|
||||
"mirror_diameter_mm": 1200.0,
|
||||
"inner_radius_mm": 135.75,
|
||||
"n_zernike_modes": 50,
|
||||
"n_points_radial": 200,
|
||||
"mesh_source": "real FEA mesh (/home/papa/.openclaw/media/inbound/3e253684-cb78-4688-b55f-83fc68b85099.csv)",
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"n_modes": 50,
|
||||
"cases": {
|
||||
"Z05_astig_0deg": {
|
||||
"input_coefficients": {
|
||||
@@ -13,12 +12,18 @@
|
||||
"coefficient_names": {
|
||||
"5": "Astigmatism 45\u00b0"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.90787728635817,
|
||||
"rms_nm_with_noise": 41.90787728635817,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.12315417582499,
|
||||
"rms_nm_with_noise": 42.12315417582499,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z06_astig_45deg": {
|
||||
"input_coefficients": {
|
||||
@@ -27,12 +32,18 @@
|
||||
"coefficient_names": {
|
||||
"6": "Astigmatism 0\u00b0"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.87578387312423,
|
||||
"rms_nm_with_noise": 41.87578387312423,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.12517074515991,
|
||||
"rms_nm_with_noise": 42.12517074515991,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z07_coma_x": {
|
||||
"input_coefficients": {
|
||||
@@ -41,12 +52,18 @@
|
||||
"coefficient_names": {
|
||||
"7": "Coma X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 35.928378983095506,
|
||||
"rms_nm_with_noise": 35.928378983095506,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.296215855347604,
|
||||
"rms_nm_with_noise": 36.296215855347604,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z08_coma_y": {
|
||||
"input_coefficients": {
|
||||
@@ -55,12 +72,18 @@
|
||||
"coefficient_names": {
|
||||
"8": "Coma Y"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 35.928378983095506,
|
||||
"rms_nm_with_noise": 35.928378983095506,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 33.6178747432943,
|
||||
"rms_nm_with_noise": 33.6178747432943,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z09_trefoil_x": {
|
||||
"input_coefficients": {
|
||||
@@ -69,12 +92,18 @@
|
||||
"coefficient_names": {
|
||||
"9": "Trefoil X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 36.27358028530051,
|
||||
"rms_nm_with_noise": 36.27358028530051,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.78252785961855,
|
||||
"rms_nm_with_noise": 36.78252785961855,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z10_trefoil_y": {
|
||||
"input_coefficients": {
|
||||
@@ -83,12 +112,18 @@
|
||||
"coefficient_names": {
|
||||
"10": "Trefoil Y"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 36.27358028530051,
|
||||
"rms_nm_with_noise": 36.27358028530051,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 36.78306790995374,
|
||||
"rms_nm_with_noise": 36.78306790995374,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z11_spherical": {
|
||||
"input_coefficients": {
|
||||
@@ -97,12 +132,18 @@
|
||||
"coefficient_names": {
|
||||
"11": "Primary Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.33581266115739,
|
||||
"rms_nm_with_noise": 41.33581266115739,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 45.12884267711414,
|
||||
"rms_nm_with_noise": 45.12884267711414,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z22_2nd_spherical": {
|
||||
"input_coefficients": {
|
||||
@@ -111,12 +152,18 @@
|
||||
"coefficient_names": {
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 17.392678653363138,
|
||||
"rms_nm_with_noise": 17.392678653363138,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 19.830797790000034,
|
||||
"rms_nm_with_noise": 19.830797790000034,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"Z37_high_order": {
|
||||
"input_coefficients": {
|
||||
@@ -125,12 +172,18 @@
|
||||
"coefficient_names": {
|
||||
"37": "Z(8,+0)"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 9.330123545845794,
|
||||
"rms_nm_with_noise": 9.330123545845794,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 10.645079894279842,
|
||||
"rms_nm_with_noise": 10.645079894279842,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"realistic_gravity": {
|
||||
"input_coefficients": {
|
||||
@@ -155,12 +208,18 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.22340829508179,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.14873971447113,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"realistic_noise_1nm": {
|
||||
"input_coefficients": {
|
||||
@@ -185,12 +244,18 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.23235114137111,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.210200631608785,
|
||||
"noise_rms_nm": 1.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"realistic_noise_5nm": {
|
||||
"input_coefficients": {
|
||||
@@ -215,12 +280,18 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 41.511570286278975,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.66543622974069,
|
||||
"noise_rms_nm": 5.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"realistic_noise_10nm": {
|
||||
"input_coefficients": {
|
||||
@@ -245,12 +316,18 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.22340829508179,
|
||||
"rms_nm_with_noise": 42.39618932696218,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 43.691084762101006,
|
||||
"noise_rms_nm": 10.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"near_zero": {
|
||||
"input_coefficients": {
|
||||
@@ -263,12 +340,18 @@
|
||||
"7": "Coma X",
|
||||
"11": "Primary Spherical"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 0.04578284369521264,
|
||||
"rms_nm_with_noise": 0.04578284369521264,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 0.046725164260732095,
|
||||
"rms_nm_with_noise": 0.046725164260732095,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"large_amplitude": {
|
||||
"input_coefficients": {
|
||||
@@ -279,12 +362,18 @@
|
||||
"5": "Astigmatism 45\u00b0",
|
||||
"7": "Coma X"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 235.6361394467916,
|
||||
"rms_nm_with_noise": 235.6361394467916,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 237.09820412706273,
|
||||
"rms_nm_with_noise": 237.09820412706273,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"many_modes": {
|
||||
"input_coefficients": {
|
||||
@@ -383,14 +472,20 @@
|
||||
"49": "Z(9,+3)",
|
||||
"50": "Z(9,-5)"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 16.40426082558852,
|
||||
"rms_nm_with_noise": 16.40426082558852,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 14.718241472214698,
|
||||
"rms_nm_with_noise": 14.718241472214698,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
"include_lateral": false,
|
||||
"seed": 42,
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
},
|
||||
"realistic_full_disk": {
|
||||
"realistic_with_lateral": {
|
||||
"input_coefficients": {
|
||||
"5": 80.0,
|
||||
"6": 45.0,
|
||||
@@ -413,44 +508,18 @@
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 124980,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 40.21839241800354,
|
||||
"rms_nm_with_noise": 40.21839241800354,
|
||||
"n_points": 357,
|
||||
"diameter_mm": 308.4492626330409,
|
||||
"rms_nm_clean": 42.14873971447113,
|
||||
"rms_nm_with_noise": 42.14873971447113,
|
||||
"noise_rms_nm": 0.0,
|
||||
"include_lateral": true,
|
||||
"seed": 42,
|
||||
"inner_radius_mm": 0.0
|
||||
},
|
||||
"realistic_scattered": {
|
||||
"input_coefficients": {
|
||||
"5": 80.0,
|
||||
"6": 45.0,
|
||||
"7": 30.0,
|
||||
"8": 20.0,
|
||||
"9": 15.0,
|
||||
"11": 10.0,
|
||||
"13": 5.0,
|
||||
"16": 3.0,
|
||||
"22": 2.0
|
||||
},
|
||||
"coefficient_names": {
|
||||
"5": "Astigmatism 45\u00b0",
|
||||
"6": "Astigmatism 0\u00b0",
|
||||
"7": "Coma X",
|
||||
"8": "Coma Y",
|
||||
"9": "Trefoil X",
|
||||
"11": "Primary Spherical",
|
||||
"13": "2nd Astig Y",
|
||||
"16": "2nd Coma X",
|
||||
"22": "2nd Spherical"
|
||||
},
|
||||
"n_points": 119376,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 41.32177716032332,
|
||||
"rms_nm_with_noise": 41.32177716032332,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42,
|
||||
"grid_type": "scattered"
|
||||
"units": {
|
||||
"positions": "meters",
|
||||
"displacements": "meters",
|
||||
"coefficients": "nanometers"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user