How xcfem/xc works
XC is an open-source finite-element program for structural analysis and design. Its principal workflow is to define a structural model, generate a mesh and assign materials and loads, run an analysis, then inspect results; the README also highlights code-based design, geotechnical tools, and steel-connection design. The graph reflects documented capabilities and sampled/indexed implementation evidence. Several feature branches are represented at the directory level because their implementation files were not sampled.
Main entry points: Domain.h Model domain · MaterialHandler.cc Materials and sections · predefined_solutions.py Analysis solutions · ProtoElementHandler.cc Mesh and elements
Components 17
Model definition
- Geometry and spaces
python_modules/model - Mesh and elements
src/preprocessor/prep_handlers/ProtoElementHandler.cc - Materials and sections
src/preprocessor/prep_handlers/MaterialHandler.cc - Model domain
src/domain/domain/Domain.h - Actions and loads
python_modules/actions
Analysis engine
- Constraints
src/solution/analysis/handler/AutoConstraintHandler.cpp - Analysis solutions
python_modules/solution/predefined_solutions.py - Analysis state
src/solution/analysis/model/UnbalAndTangentStorage.cc - Shell formulation
src/domain/mesh/element/plane/shell/ShellMITC9.cpp - Tagged object storage
src/utility/tagged/storage/TaggedObjectStorage.cc
Engineering tools
- Structural code checks
python_modules/materials - Steel connections
python_modules/connections/steel_connections - Geotechnical analysis
python_modules/geotechnics - Reliability analysis
src/reliability/analysis/analysis/FragilityAnalysis.cpp
Results and exchange
- Result visualization
python_modules/postprocess/output_handler.py - Model exchange
python_modules/import_export
Other components
- Structural engineer
Connections 20
- Structural engineer → Geometry and spaces: defines geometry
- Geometry and spaces → Mesh and elements: generates mesh
- Structural engineer → Materials and sections: assigns materials
- Structural engineer → Actions and loads: defines loads
- Mesh and elements → Model domain: populates model
- Materials and sections → Mesh and elements: supplies sections
- Actions and loads → Model domain: applies actions
- Model domain → Constraints: provides model
src/solution/analysis/handler/AutoConstraintHandler.cpp - Constraints → Analysis solutions: prepares equations
- Analysis solutions → Analysis state: assembles state
- Shell formulation → Model domain: forms element
- Structural engineer → Structural code checks: checks design
- Structural engineer → Steel connections: designs connections
- Structural engineer → Geotechnical analysis: uses geotechnics
- Structural engineer → Reliability analysis: assesses reliability
- Structural engineer → Model exchange: imports models
- Analysis solutions → Result visualization: provides results
- Result visualization → Structural engineer: displays results
python_modules/postprocess/output_handler.py - Model domain → Tagged object storage: stores components
src/domain/domain/Domain.h - Materials and sections → Structural code checks: supports checks