OutWit.Controller.CalculiX 1.0.3

dotnet add package OutWit.Controller.CalculiX --version 1.0.3
                    
NuGet\Install-Package OutWit.Controller.CalculiX -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OutWit.Controller.CalculiX" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Controller.CalculiX" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Controller.CalculiX" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OutWit.Controller.CalculiX --version 1.0.3
                    
#r "nuget: OutWit.Controller.CalculiX, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OutWit.Controller.CalculiX@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OutWit.Controller.CalculiX&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Controller.CalculiX&version=1.0.3
                    
Install as a Cake Tool

OutWit.Controller.CalculiX

Runs complete CalculiX (ccx) decks on WitCloud compute nodes. One solve = one whole deck on one node — no decomposition, no model conversion; deck support is whatever the pinned ccx solves. The win is throughput across many independent solves, which is exactly what the companion OutWit.Controller.Sweep orchestrates into parameter studies.

Activity

Activity Side Purpose
Ccx.Solve(CcxTask) → CcxResult node Download the variant deck, run the bundled ccx (<ccx> <jobname> in a scratch directory, OMP_NUM_THREADS from the task), upload .frd/.dat as blobs, extract the requested responses on the node, return artifact ids + exit code + measured solve time + the response row. A nonzero solver exit is data in the result, not a task failure.

The task rides as one envelope (CcxTaskData): deck blob id, explicit node/element counts (work estimation never opens the blob), thread policy and the extraction request. Results return in completion order — consumers map by VariantIndex, never positionally.

Bundled solver

The module carries pinned ccx 2.22 builds for win-x64, linux-x64 and osx-arm64 as controller data assets, produced and mirrored by OmnibusCloud/CalculiX. Nodes need no preinstalled software - the macOS kit carries the GCC runtime (libgfortran/libgomp/libquadmath/libgcc_s) beside ccx, referenced through @loader_path; ccx-v2.22-1 had linked them by absolute Homebrew paths and every variant on the first Apple Silicon node died with "dyld: Library not loaded" (exit 134) - ccx-v2.22-3, controller 0.1.8. The Windows kit is built on MSYS2 winpthreads 13.0.0.r488: the 14.x runtime turns every uncontended mutex into a kernel wait, and libgfortran takes one per Fortran I/O statement, so ccx-v2.22-3 ran the reference cube 1.8x slower than upstream's own Windows build and Windows workers were rated below Linux ones by the same factor - ccx-v2.22-4, controller 1.0.1, results byte-identical. CalculiX is GPL-2.0: the asset kit ships the license text and the written source offer, and the corresponding source is publicly mirrored in that repository's releases.

Node benchmark: Ccx.Solve is ranked by the reference deck (a 20³-node static cube embedded in the module) in unit ccx-static@ref20-v2. The first solve is an untimed warm-up - it is the first start of the freshly installed kit, and its cold page cache and antivirus scan once rated a Ryzen 9 5950X at 1.36 s against the 0.75 s it takes from then on; the rate is 1 / the median of three to five timed solves (1.5 s target), so one stall does not move it and a busy machine is still rated as busy. ref20-v1 (controller 1.0.1 and earlier) timed one cold solve. The Custom bag carries the run times (runs_s, median_s, warmup_s) and the solved maximum displacement (checksum).

ccx is started without a console window (CreateNoWindow). The worker client is a windowed application with no console of its own, so before controller 1.0.3 every ccx.exe it launched got a fresh console, which cost about 0.45 s per start on Windows 11: the reference cube took 1.13-1.23 s from the client against 0.69-0.76 s with the flag, and every sweep variant on a Windows node paid it.

Determinism note: ccx with OpenMP is not bitwise-reproducible across thread counts, and the three platform builds add last-digit variation — results are stable to engineering tolerance, and the controller's tests assert tolerance, not bits.

Dependencies

Variables (module dependency). The shared data types live in OutWit.Controller.CalculiX.Model, consumed by this controller, by the Sweep orchestration controller, and by client applications reading sweep manifests.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 39 9/17/2026
1.0.2 37 9/17/2026
1.0.1 40 9/17/2026
1.0.0 56 9/16/2026
0.1.8 178 8/22/2026
0.1.7 134 8/13/2026
0.1.6 96 8/13/2026
0.1.5 114 8/12/2026
0.1.4 100 8/4/2026