Data Structures

Detailed reference for PanLink SDK data structures and enumerations.

Enumerations

PanLink_Module_Type

Defines the type of simulation module to initialize.

typedef enum {
    PL_MODULE_TYPE_PanPhaseEquilibrium = 0,  // Phase equilibrium calculation
    PL_MODULE_TYPE_PanEvolution = 1,         // PanEvolution simulation
    PL_MODULE_TYPE_PanSoldification = 2,     // PanSolidification simulation
    PL_MODULE_TYPE__MAX = 3
} PanLink_Module_Type;

PanLink_Property_Type

Categorizes the type of a property.

typedef enum {
    PROP_TYPE_THERMODYNAMIC = 0,
    PROP_TYPE_THERMOPHYSICAL = 1,
    PROP_TYPE_KINETIC = 2,
    PROP_TYPE_SOLIDIFICATION = 3,
    PROP_TYPE_MECHANICAL = 4,
    PROP_TYPE_OTHER = 5,
    PROP_TYPE_MAX = 6
} PanLink_Property_Type;

PanLink_Predefined_Property_ID

Identifiers for standard system properties, allowing for easy access and configuration.

Partial list shown. See PanLink_C_Properties.h for full list.
IDDescription
PROP_ID_GGibbs Free Energy
PROP_ID_HEnthalpy
PROP_ID_SEntropy
PROP_ID_CpSpecific Heat
PROP_ID_fsFraction Solid
PROP_ID_Grain_SizeAverage Grain Size
PROP_ID_sigma_yYield Strength
PROP_ID_DensityDensity

Structures

PanLink_State_Variable

Represents the input state for a calculation point (node/element).

struct PanLink_State_Variable {
    double m_position[3];            // Spatial coordinates (x, y, z)
    double m_n[Max_Num_Components];  // Composition (mole fraction/amount)
    int m_num_n;                     // Number of components defined
    double m_time;                   // Current time
    double m_dt;                     // Time step
    double m_T;                      // Temperature (K)
    double m_cooling_rate;           // Cooling rate (K/s)
    double m_thermal_gradient;       // Thermal gradient (K/m)
    double m_strain;                 // Plastic strain
    double m_strainRate;             // Strain rate
    double m_more_vars[16];          // Reserved for additional variables
    PanLink_Unit m_units[Max_Num_Units]; // Units definition
    // ... constructors and methods
};

PanLink_Property

The main container for all calculated properties of the system.

struct PanLink_Property {
    PanLink_Phase_Property* m_phase_properties;  // Array of per-phase properties
    int m_num_phase_properties;                  // Count of phases
    
    // System-level property groups
    PanLink_Thermodynamic_Properties* m_thermodynamic;
    PanLink_Kinetic_Properties* m_kinetic;
    PanLink_Solidification_Properties* m_solidification;
    PanLink_ThermoPhysical_Properties* m_thermo_physical;
    PanLink_Mechanical_Properties* m_mechanical;
    
    PanLink_Generic_Property* m_properties;      // Array of generic properties
    int m_num_properties;                        // Count of generic properties
    // ... constructors and methods
};

PanLink_Phase_Property

Container for properties specific to a single phase.

struct PanLink_Phase_Property {
    char m_phaseName[Max_Property_Name_Length]; // Name of the phase

    // Phase-specific property groups
    PanLink_Thermodynamic_Properties* m_thermodynamic;
    PanLink_Kinetic_Properties* m_kinetic;
    PanLink_Solidification_Properties* m_solidification;
    PanLink_ThermoPhysical_Properties* m_thermo_physical;
    PanLink_Mechanical_Properties* m_mechanical;
    
    PanLink_Generic_Property* m_properties;
    int m_num_properties;
    // ... constructors and methods
};

Property Group Structures

Specific groups of properties organized by physical domain.

PanLink_Thermodynamic_Properties

  • m_G, m_H, m_S: Gibbs Energy, Enthalpy, Entropy
  • m_Cp: Specific Heat
  • m_mu[]: Chemical Potentials

PanLink_Kinetic_Properties

  • m_fv: Volume Fraction
  • m_average_Size: Average particle/grain size
  • m_nd: Number density
  • m_dislocation_Density: Dislocation density

PanLink_Solidification_Properties

  • m_fl, m_fs: Liquid and Solid fractions
  • m_H_Latent: Latent Heat
  • m_arm_space: Dendrite arm spacing

PanLink_Mechanical_Properties

  • m_sigma_y: Total Yield Strength
  • m_sigma_p: Precipitation hardening contribution
  • m_sigma_ss: Solid solution strengthening contribution

Material_System_Info

Contains metadata about the loaded system.

struct Material_System_Info {
    Database databases[Max_Num_Components];   // Loaded databases
    Component components[Max_Num_Components]; // System components
    int num_components;
    int num_databases;
    // ...
};