power_grid_model_c

This is a C-API reference. In the following sections the content of all the headers are shown.

You can include power_grid_model_c.h if you want to use all the symbols (except for the global definition pointers of all datasets, components, attributes).

You can also include one or more of the individual headers to use a subset of the functionality.

Main Header

The main header is power_grid_model_c.h with all the core functionality.

Defines

POWER_GRID_MODEL_C_H

Basics

The header power_grid_model_c/basics.h contains definitions of opaque structs and enumerations.

Defines

POWER_GRID_MODEL_C_BASICS_H

Header file which includes basic type definitions.

Typedefs

typedef int64_t PGM_Idx
typedef int32_t PGM_ID
typedef struct PGM_PowerGridModel PGM_PowerGridModel

Opaque struct for the PowerGridModel class.

typedef struct PGM_Handle PGM_Handle

Opaque struct for the handle class.

The handle class is used to store error and information.

typedef struct PGM_Options PGM_Options

Opaque struct for the option class.

The option class is used to set calculation options like calculation method.

typedef struct PGM_MetaAttribute PGM_MetaAttribute

Opaque struct for the attribute meta class.

The attribute class contains all the meta information of a single attribute.

typedef struct PGM_MetaComponent PGM_MetaComponent

Opaque struct for the component meta class.

The component class contains all the meta information of a single component.

typedef struct PGM_MetaDataset PGM_MetaDataset

Opaque struct for the dataset meta class.

The dataset class contains all the meta information of a single dataset.

typedef struct PGM_Serializer PGM_Serializer

Opaque struct for the serializer class.

typedef struct PGM_Deserializer PGM_Deserializer

Opaque struct for the deserializer class.

typedef struct PGM_ConstDataset PGM_ConstDataset

Opaque struct for the const dataset class.

typedef struct PGM_MutableDataset PGM_MutableDataset

Opaque struct for the multable dataset class. The mutable dataset is meant for the user to provide buffers to store the output of calculations.

typedef struct PGM_WritableDataset PGM_WritableDataset

Opaque struct for the writable dataset class. The writable dataset is meant for the user to provide buffers for the deserializer.

typedef struct PGM_DatasetInfo PGM_DatasetInfo

Opaque struct for the information of the dataset.

Enums

enum PGM_CalculationType

Enumeration for calculation type.

Values:

enumerator PGM_power_flow

power flow calculation

enumerator PGM_state_estimation

state estimation calculation

enumerator PGM_short_circuit

short circuit calculation

enum PGM_CalculationMethod

Enumeration for calculation method.

Values:

enumerator PGM_default_method

the default method for each calculation type, e.g. Newton-Raphson for power flow

enumerator PGM_linear

linear constant impedance method for power flow

enumerator PGM_newton_raphson

Newton-Raphson method for power flow or state estimation

enumerator PGM_iterative_linear

iterative linear method for state estimation

enumerator PGM_iterative_current

linear current method for power flow

enumerator PGM_linear_current

iterative constant impedance method for power flow

enumerator PGM_iec60909

fault analysis for short circuits using the iec60909 standard

enum PGM_ErrorCode

Enumeration of error codes.

Values:

enumerator PGM_no_error

no error occurred

enumerator PGM_regular_error

some error occurred which is not in the batch calculation

enumerator PGM_batch_error

some error occurred which is in the batch calculation

enumerator PGM_serialization_error

some error occurred which is in the (de)serialization process

enum PGM_CType

Enumeration of C basic data types.

Values:

enumerator PGM_int32

int32_t

enumerator PGM_int8

int8_t

enumerator PGM_double

double

enumerator PGM_double3

double[3]

enum PGM_SerializationFormat

Enumeration of serialization types.

Values:

enumerator PGM_json

JSON serialization format

enumerator PGM_msgpack

msgpack serialization format

enum PGM_ShortCircuitVoltageScaling

Enumeration of short circuit voltage scaling.

Values:

enumerator PGM_short_circuit_voltage_scaling_minimum

voltage scaling for minimum short circuit currents

enumerator PGM_short_circuit_voltage_scaling_maximum

voltage scaling for maximum short circuit currents

enum PGM_ExperimentalFeatures

Enumeration of experimental features.

[Danger mode]

The behavior of experimental features may not be final and no stability guarantees are made to the users. Which features (if any) are enabled in experimental mode may change over time.

Values:

enumerator PGM_experimental_features_disabled

disable experimental features

enumerator PGM_experimental_features_enabled

enable experimental features

Handle

The header power_grid_model_c/handle.h contains error handling functions.

Defines

POWER_GRID_MODEL_C_HANDLE_H

header file which includes handle functions

Functions

PGM_Handle *PGM_create_handle(void)

Create a new handle.

A handle object is needed to store error information. If you run it in multi-threading at user side, each thread should have unique handle. The handle should be destroyed by PGM_destroy_handle().

Returns:

A pointer to the created handle.

void PGM_destroy_handle(PGM_Handle *handle)

Destroy the handle.

Parameters:

handle – The pointer to the handle created by PGM_create_handle().

PGM_Idx PGM_error_code(PGM_Handle const *handle)

Get error code of last operation.

Parameters:

handle – The pointer to the handle you just used for an operation.

Returns:

The error code, see PGM_ErrorCode .

char const *PGM_error_message(PGM_Handle const *handle)

Get error message of last operation.

If the error code is PGM_batch_error. Use PGM_n_failed_scenarios(), PGM_failed_scenarios(), and PGM_batch_errors() to retrieve the detail.

Parameters:

handle – The pointer to the handle you just used for an operation.

Returns:

A char const* poiner to a zero terminated string. The pointer is not valid if you execute another operation. You need to copy the string in your own data.

PGM_Idx PGM_n_failed_scenarios(PGM_Handle const *handle)

Get the number of failed scenarios. Only applicable when you just executed a batch calculation.

Parameters:

handle – The pointer to the handle you just used for a batch calculation.

Returns:

The number of failed scenarios.

PGM_Idx const *PGM_failed_scenarios(PGM_Handle const *handle)

Get the list of failed scenarios, Only applicable when you just execute a batch calculation.

Parameters:

handle – The pointer to the handle you just used for a batch calculation.

Returns:

A pointer to a PGM_Idx array with length returned by PGM_n_failed_scenarios(). The pointer is not valid if you execute another operation. You need to copy the array in your own data.

char const **PGM_batch_errors(PGM_Handle const *handle)

Get the list of batch errors. Only applicable when you just execute a batch calculation.

Parameters:

handle – The pointer to the handle you just used for a batch calculation.

Returns:

A pointer to a char const* array with length returned by PGM_n_failed_scenarios(). Each entry is a zero terminated string. The pointer is not valid if you execute another operation. You need to copy the array (and the string) in your own data.

void PGM_clear_error(PGM_Handle *handle)

Clear and reset the handle.

Parameters:

handle – The pointer to the handle.

Meta Data

The header power_grid_model_c/meta_data.h contains functions to retrieve meta data.

Defines

POWER_GRID_MODEL_C_META_DATA_H

header file which includes meta data functions

Functions

PGM_Idx PGM_meta_n_datasets(PGM_Handle *handle)

Get number of datasets.

Parameters:

handle

Returns:

The number of datasets.

PGM_MetaDataset const *PGM_meta_get_dataset_by_idx(PGM_Handle *handle, PGM_Idx idx)

Get pointer of idx-th dataset.

Parameters:
Returns:

The pointer to the idx-th dataset. The pointer is permanantly valid. Or a NULL if your input is out of bound.

PGM_MetaDataset const *PGM_meta_get_dataset_by_name(PGM_Handle *handle, char const *dataset)

Get pointer of dataset by name.

Parameters:
  • handle

  • dataset – The name of the dataset.

Returns:

The pointer to the dataset with that name. The pointer is permanantly valid. Or a NULL if your input is out of bound.

char const *PGM_meta_dataset_name(PGM_Handle *handle, PGM_MetaDataset const *dataset)

Get name of the dataset.

Parameters:
  • handle

  • dataset – The pointer to a dataset object.

Returns:

The name of the dataset in a char const*. The pointer is permanantly valid.

PGM_Idx PGM_meta_n_components(PGM_Handle *handle, PGM_MetaDataset const *dataset)

Get the number of components for a dataset.

Parameters:
  • handle

  • dataset – The pointer to the dataset.

Returns:

Number of components.

PGM_MetaComponent const *PGM_meta_get_component_by_idx(PGM_Handle *handle, PGM_MetaDataset const *dataset, PGM_Idx idx)

Get pointer of idx-th component of a dataset.

Parameters:
  • handle

  • dataset – The pointer to the dataset.

  • idx – The sequence number, should be between [0, PGM_meta_n_components()).

Returns:

The pointer to the idx-th component. The pointer is permanantly valid. Or a NULL if your input is out of bound.

PGM_MetaComponent const *PGM_meta_get_component_by_name(PGM_Handle *handle, char const *dataset, char const *component)

Get pointer of a component by name.

Parameters:
  • handle

  • dataset – The name of the dataset.

  • component – The name of the component.

Returns:

The pointer to the component with that name. The pointer is permanantly valid. Or a NULL if your input is out of bound.

char const *PGM_meta_component_name(PGM_Handle *handle, PGM_MetaComponent const *component)

Get name of component.

Parameters:
  • handle

  • component – The pointer to the component.

Returns:

The name of the component in a char const*. The pointer is permanantly valid.

size_t PGM_meta_component_size(PGM_Handle *handle, PGM_MetaComponent const *component)

Get size of the component.

Parameters:
  • handle

  • component – The pointer to the component.

Returns:

Size of the component.

size_t PGM_meta_component_alignment(PGM_Handle *handle, PGM_MetaComponent const *component)

Get alignment of the component.

Parameters:
  • handle

  • component – The pointer to the component.

Returns:

Alignment of the component.

PGM_Idx PGM_meta_n_attributes(PGM_Handle *handle, PGM_MetaComponent const *component)

Get number of attributes of the component.

Parameters:
  • handle

  • component – The pointer to the component.

Returns:

Number of attributes.

PGM_MetaAttribute const *PGM_meta_get_attribute_by_idx(PGM_Handle *handle, PGM_MetaComponent const *component, PGM_Idx idx)

Get pointer of idx-th attribute of a component.

Parameters:
  • handle

  • component – The pointer to the component.

  • idx – The sequence number, should be between [0, PGM_meta_n_attributes())

Returns:

The pointer to the idx-th attribute. The pointer is permanantly valid. Or a NULL if your input is out of bound.

PGM_MetaAttribute const *PGM_meta_get_attribute_by_name(PGM_Handle *handle, char const *dataset, char const *component, char const *attribute)

Get pointer of a attribute by name.

Parameters:
  • handle

  • dataset – The name of the dataset.

  • component – The name of the component.

  • attribute – The name of the attribute.

Returns:

The pointer to the component with that name. The pointer is permanantly valid. Or a NULL if your input is out of bound.

char const *PGM_meta_attribute_name(PGM_Handle *handle, PGM_MetaAttribute const *attribute)

Get attribute name.

Parameters:
  • handle

  • attribute – The pointer to attribute.

Returns:

The name of the attribute in char const*. The pointer is permanantly valid.

PGM_Idx PGM_meta_attribute_ctype(PGM_Handle *handle, PGM_MetaAttribute const *attribute)

Get the type of an attribute.

Parameters:
  • handle

  • attribute – The pointer to attribute.

Returns:

The type of the attribute as in enum PGM_CType.

size_t PGM_meta_attribute_offset(PGM_Handle *handle, PGM_MetaAttribute const *attribute)

Get the offset of an attribute in a component.

Parameters:
  • handle

  • attribute – The pointer to attribute.

Returns:

The offset of this attribute.

int PGM_is_little_endian(PGM_Handle *handle)

Get whether the system is little endian.

Parameters:

handle

Returns:

1 if the system is litten endian; 0 if the system is big endian.

Buffer

The header power_grid_model_c/buffer.h contains functions for buffer control.

Defines

POWER_GRID_MODEL_C_BUFFER_H

header file which includes buffer functions

Functions

void *PGM_create_buffer(PGM_Handle *handle, PGM_MetaComponent const *component, PGM_Idx size)

Create a buffer with certain size and component type.

You can use this function to allocate a buffer. You can also use your own allocation function to do that with size and alignment got from PGM_meta_component_size() and PGM_meta_component_alignment(). The buffer created by this function should be freed by PGM_destroy_buffer().

It is recommended to call PGM_buffer_set_nan() after you create an input or update buffer. In this way all the attributes will be set to NaN. And if there is a new optional attribute added in the future. You have garantee that your code is still compatible because that optional attribute will be set to NaN and the default value will be used.

Parameters:
  • handle

  • component – A component pointer.

  • size – The size of the buffer in terms of number of elements.

Returns:

A pointer to the buffer, or NULL if the input is invalid.

void PGM_destroy_buffer(void *ptr)

Destroy the buffer you created using PGM_create_buffer().

NOTE: do not call this function on the buffer you created using your own function.

Parameters:

ptr – The pointer to the buffer created using PGM_create_buffer().

void PGM_buffer_set_nan(PGM_Handle *handle, PGM_MetaComponent const *component, void *ptr, PGM_Idx buffer_offset, PGM_Idx size)

Set all the attributes of a buffer to NaN.

Parameters:
  • handle

  • component – A component pointer.

  • ptr – pointer to buffer, created either by PGM_create_buffer() or your own function.

  • buffer_offset – The offset in the buffer where you begin to set nan, in terms of number of elements.

  • size – The size of the buffer in terms of number of elements.

void PGM_buffer_set_value(PGM_Handle *handle, PGM_MetaAttribute const *attribute, void *buffer_ptr, void const *src_ptr, PGM_Idx buffer_offset, PGM_Idx size, PGM_Idx src_stride)

Set value of a certain attribute from an array to the component buffer.

You can use this function to set value. You can also set value by proper pointer arithmetric and casting, using the offset information returned by PGM_meta_attribute_offset().

Parameters:
  • handle

  • attribute – An attribute pointer.

  • buffer_ptr – A pointer to the buffer.

  • src_ptr – A pointer to the source array you want to retrieve the value from.

  • buffer_offset – The offset in the buffer where you begin to set value, in terms of number of elements

  • size – The size of the buffer in terms of number of elements.

  • src_stride – The stride of the source array in bytes. You can set it to -1, the default stride of the size of the attribute type (like sizeof(double)). If you set it to a positive number, the i-th set-value will retrieve the source data at (void const*)((char const*)src_ptr + i * src_stride)

void PGM_buffer_get_value(PGM_Handle *handle, PGM_MetaAttribute const *attribute, void const *buffer_ptr, void *dest_ptr, PGM_Idx buffer_offset, PGM_Idx size, PGM_Idx dest_stride)

Get value of a certain attribute from the component buffer to an array.

You can use this function to get value. You can also get value by proper pointer arithmetric and casting, using the offset information returned by PGM_meta_attribute_offset().

Parameters:
  • handle

  • attribute – An attribute pointer.

  • buffer_ptr – A pointer to the buffer.

  • dest_ptr – A pointer to the destination array you want to save the value to.

  • buffer_offset – The offset in the buffer where you begin to get value; in terms of number of elements.

  • size – The size of the buffer in terms of number of elements.

  • dest_stride – The stride of the destination array in bytes. You can set it to -1, the default stride of the size of the attribute type (like sizeof(double)). If you set it to a positive number, the i-th get-value will retrieve the source data at (void*)((char*)dest_ptr + i * dest_stride)

Dataset

The header power_grid_model_c/dataset.h contains functions for dataset control.

Defines

POWER_GRID_MODEL_C_DATASET_H

header file which includes dataset handling functions

Functions

char const *PGM_dataset_info_name(PGM_Handle *handle, PGM_DatasetInfo const *info)

Get the name of the dataset.

Parameters:
  • handle

  • info – A pointer to the info object.

Returns:

A pointer to null null-terminated string of the dataset name. The pointer is permanently valid.

PGM_Idx PGM_dataset_info_is_batch(PGM_Handle *handle, PGM_DatasetInfo const *info)

Get the flag whether the dataset is a batch dataset.

Parameters:
  • handle

  • info – A pointer to the info object.

Returns:

1 if the dataset is a batch, 0 if it is not.

PGM_Idx PGM_dataset_info_batch_size(PGM_Handle *handle, PGM_DatasetInfo const *info)

Get the batch size of the dataset.

Parameters:
  • handle

  • info – A pointer to the info object.

Returns:

Size of the batch. For a single-dataset, the batch size is always 1.

PGM_Idx PGM_dataset_info_n_components(PGM_Handle *handle, PGM_DatasetInfo const *info)

Get the number of components in the dataset.

Parameters:
  • handle

  • info – A pointer to the info object.

Returns:

The number of components.

char const *PGM_dataset_info_component_name(PGM_Handle *handle, PGM_DatasetInfo const *info, PGM_Idx component_idx)

Get the name of i-th component.

Parameters:
  • handle

  • info – A pointer to the info object.

  • component_idx – The index number of the component.

Returns:

A pointer to the null-terminated string of the component name. The pointer is permanently valid.

PGM_Idx PGM_dataset_info_elements_per_scenario(PGM_Handle *handle, PGM_DatasetInfo const *info, PGM_Idx component_idx)

Get the elements per scenario for the i-th component.

Parameters:
  • handle

  • info – A pointer to the info object.

  • component_idx – The index number of the component.

Returns:

Number of elements per scenario for that component, or -1 if the scenario is not uniform (different number per scenario).

PGM_Idx PGM_dataset_info_total_elements(PGM_Handle *handle, PGM_DatasetInfo const *info, PGM_Idx component_idx)

Get the total number of elements for the i-th component.

Parameters:
  • handle

  • info – A pointer to the info object.

  • component_idx – The index number of the component.

Returns:

The total number of elements of that component. If the number of elements per scenario is uniform, this value must equal to PGM_dataset_info_batch_size() * PGM_dataset_info_elements_per_scenario().

PGM_ConstDataset *PGM_create_dataset_const(PGM_Handle *handle, char const *dataset, PGM_Idx is_batch, PGM_Idx batch_size)

Create an instance of PGM_ConstDataset.

Parameters:
  • handle

  • dataset – The name of the dataset.

  • is_batch – 1 if the dataset is a batch, 0 if the dataset is single.

  • batch_size – The size of the batch. For single datasets, this must be 1.

Returns:

A pointer to the created PGM_ConstDataset, or NULL if errors occur. Check the handle for error. The instance must be freed by PGM_destroy_dataset_const().

PGM_ConstDataset *PGM_create_dataset_const_from_writable(PGM_Handle *handle, PGM_WritableDataset const *writable_dataset)

Create an instance of PGM_ConstDataset from a PGM_WritableDataset They share the same buffer memory.

Parameters:
  • handle

  • writable_dataset – pointer to an instance of PGM_WritableDataset

Returns:

A pointer to the created PGM_ConstDataset, or NULL if errors occur. Check the handle for error. The instance must be freed by PGM_destroy_dataset_const().

PGM_ConstDataset *PGM_create_dataset_const_from_mutable(PGM_Handle *handle, PGM_MutableDataset const *mutable_dataset)

Create an instance of PGM_ConstDataset from a PGM_MutableDataset They share the same buffer memory.

Parameters:
  • handle

  • mutable_dataset – pointer to an instance of PGM_MutableDataset

Returns:

A pointer to the created PGM_ConstDataset, or NULL if errors occur. Check the handle for error. The instance must be freed by PGM_destroy_dataset_const().

void PGM_destroy_dataset_const(PGM_ConstDataset *dataset)

Destroy an instance of PGM_ConstDataset.

Parameters:

dataset – The pointer to the PGM_ConstDataset created by PGM_create_dataset_const(), PGM_create_dataset_const_from_writable(), or PGM_create_dataset_const_from_mutable().

Returns:

void PGM_dataset_const_add_buffer(PGM_Handle *handle, PGM_ConstDataset *dataset, char const *component, PGM_Idx elements_per_scenario, PGM_Idx total_elements, PGM_Idx const *indptr, void const *data)

Add a component buffer to an instance of PGM_ConstDataset.

Parameters:
  • handle

  • dataset – The pointer to the PGM_ConstDataset.

  • component – The name of the component.

  • elements_per_scenario – The number of the elements per scenario. If the component is uniform, elements_per_scenario must be >= 0 If the component is not uniform, elements_per_scenario must be -1

  • total_elements – The total number of elements for all scenarios. If elements_per_scenario >= 0, we must have elements_per_scenario * batch_size = total_elements.

  • indptr – A pointer to an array of indptr of a non-uniform component. If the component is uniform, indptr must be NULL. If the component is not uniform, indptr must point to an array of size (batch_size + 1). The values in the array must be not decreasing. And we must have indptr[0] = 0, indptr[batch_size] = total_elements.

  • data – A void pointer to the buffer data.

Returns:

PGM_DatasetInfo const *PGM_dataset_const_get_info(PGM_Handle *handle, PGM_ConstDataset const *dataset)

Get the dataset info of the instance PGM_ConstDataset.

Parameters:
  • handle

  • dataset – A pointer to the PGM_ConstDataset.

Returns:

A pointer to the instance of PGM_DatasetInfo. The pointer has the same lifetime as the input dataset pointer.

PGM_DatasetInfo const *PGM_dataset_writable_get_info(PGM_Handle *handle, PGM_WritableDataset const *dataset)

Get the dataset info of the instance PGM_WritableDataset.

Parameters:
  • handle

  • dataset – A pointer to the PGM_WritableDataset.

Returns:

A pointer to the instance of PGM_DatasetInfo. The pointer has the same lifetime as the input dataset pointer.

void PGM_dataset_writable_set_buffer(PGM_Handle *handle, PGM_WritableDataset *dataset, char const *component, PGM_Idx *indptr, void *data)

Set buffer into the instance PGM_WritableDataset.

Parameters:
  • handle

  • dataset – A pointer to the PGM_WritableDataset.

  • component – The name of the component.

  • indptr – A pointer to an array of indptr of a non-uniform component. If the component is uniform, indptr must be NULL. If the component is not uniform, indptr must point to an array of size (batch_size + 1).

  • data – A void pointer to the buffer data.

Returns:

PGM_MutableDataset *PGM_create_dataset_mutable(PGM_Handle *handle, char const *dataset, PGM_Idx is_batch, PGM_Idx batch_size)

Create an instance of PGM_MutableDataset.

Parameters:
  • handle

  • dataset – The name of the dataset.

  • is_batch – 1 if the dataset is a batch, 0 if the dataset is single.

  • batch_size – The size of the batch. For single datasets, this must be 1.

Returns:

A pointer to the created PGM_MutableDataset, or NULL if errors occur. Check the handle for error. The instance must be freed by PGM_destroy_dataset_mutable().

void PGM_destroy_dataset_mutable(PGM_MutableDataset *dataset)

Destroy an instance of PGM_MutableDataset.

Parameters:

dataset – The pointer to the PGM_MutableDataset created by PGM_create_dataset_mutable().

Returns:

void PGM_dataset_mutable_add_buffer(PGM_Handle *handle, PGM_MutableDataset *dataset, char const *component, PGM_Idx elements_per_scenario, PGM_Idx total_elements, PGM_Idx const *indptr, void *data)

Add a component buffer to an instance of PGM_MutableDataset.

Parameters:
  • handle

  • dataset – The pointer to the PGM_MutableDataset.

  • component – The name of the component.

  • elements_per_scenario – The number of the elements per scenario. If the component is uniform, elements_per_scenario must be >= 0 If the component is not uniform, elements_per_scenario must be -1

  • total_elements – The total number of elements for all scenarios. If elements_per_scenario >= 0, we must have elements_per_scenario * batch_size = total_elements.

  • indptr – A pointer to an array of indptr of a non-uniform component. If the component is uniform, indptr must be NULL. If the component is not uniform, indptr must point to an array of size (batch_size + 1). The values in the array must be not decreasing. And we must have indptr[0] = 0, indptr[batch_size] = total_elements.

  • data – A void pointer to the buffer data.

Returns:

PGM_DatasetInfo const *PGM_dataset_mutable_get_info(PGM_Handle *handle, PGM_MutableDataset const *dataset)

Get the dataset info of the instance PGM_MutableDataset.

Parameters:
  • handle

  • dataset – A pointer to the PGM_MutableDataset.

Returns:

A pointer to the instance of PGM_DatasetInfo. The pointer has the same lifetime as the input dataset pointer.

Options

The header power_grid_model_c/options.h contains functions for creating and setting calculation options.

Defines

POWER_GRID_MODEL_C_OPTIONS_H

header file which includes options functions

Functions

PGM_Options *PGM_create_options(PGM_Handle *handle)

Create an option instance.

The option is needed to run calculations. This function create a new option instance with the following default values:

  • calculation_type: PGM_power_flow

  • calculation_method: PGM_default_method

  • symmetric: 1

  • err_tol: 1e-8

  • max_iter: 20

  • threading: -1

  • short_circuit_voltage_scaling: PGM_short_circuit_voltage_scaling_maximum

  • experimental_features: PGM_experimental_features_disabled

Parameters:

handle

Returns:

The pointer to the option instance. Should be freed by PGM_destroy_options().

void PGM_destroy_options(PGM_Options *opt)

Free an option instance.

Parameters:

opt – The pointer to the option instance created by PGM_create_options().

void PGM_set_calculation_type(PGM_Handle *handle, PGM_Options *opt, PGM_Idx type)

Specify type of calculation.

Parameters:
void PGM_set_calculation_method(PGM_Handle *handle, PGM_Options *opt, PGM_Idx method)

Specify method of calculation.

Parameters:
void PGM_set_symmetric(PGM_Handle *handle, PGM_Options *opt, PGM_Idx sym)

Specify if we are calculating symmetrically or asymmetrically.

Parameters:
  • handle

  • opt – The pointer to the option instance.

  • sym – 1 for symmetric calculation; 0 for asymmetric calculation.

void PGM_set_err_tol(PGM_Handle *handle, PGM_Options *opt, double err_tol)

Specify the error tolerance to stop iterations. Only applicable if using iterative method.

It is in terms of voltage deviation per iteration in p.u.

Parameters:
  • handle

  • opt – The pointer to the option instance.

  • err_tol – The relative votlage deviation tolerance.

void PGM_set_max_iter(PGM_Handle *handle, PGM_Options *opt, PGM_Idx max_iter)

Specify maximum number of iterations. Only applicable if using iterative method.

Parameters:
  • handle

  • opt – The pointer to the option instance.

  • max_iter – The maximum number of iterations.

void PGM_set_threading(PGM_Handle *handle, PGM_Options *opt, PGM_Idx threading)

Specify the multi-threading strategy. Only applicable for batch calculation.

Parameters:
  • handle

  • opt – The pointer to the option instance.

  • threading – The value of the threading setting. See below:

    • -1: No multi-threading, calculate sequentially.

    • 0: use number of machine available threads.

    • >0: specify number of threads you want to calculate in parallel.

void PGM_set_short_circuit_voltage_scaling(PGM_Handle *handle, PGM_Options *opt, PGM_Idx short_circuit_voltage_scaling)

Specify the voltage scaling min/max for short circuit calculations.

Parameters:
void PGM_set_experimental_features(PGM_Handle *handle, PGM_Options *opt, PGM_Idx experimental_features)

Enable/disable experimental features.

[Danger mode]

The behavior of experimental features may not be final and no stability guarantees are made to the users. Features marked as ‘experimental’ as well as the behavior of experimental functionality itself may change over time.

Parameters:

Model

The header power_grid_model_c/model.h contains functions to create and calculate the main model: Power Grid Model.

Defines

POWER_GRID_MODEL_C_MODEL_H

header file which includes model functions

Functions

PGM_PowerGridModel *PGM_create_model(PGM_Handle *handle, double system_frequency, PGM_ConstDataset const *input_dataset)

Create a new instance of Power Grid Model.

This is the main function to create a new model. You need to prepare the buffer data for input. The returned model need to be freed by PGM_destroy_model()

Parameters:
  • handle

  • system_frequency – The frequency of the system, usually 50 or 60 Hz

  • input_dataset – Pointer to an instance of PGM_ConstDataset. It should have data type “input”.

Returns:

The opaque pointer to the created model. If there are errors during the creation, a NULL is returned. Use PGM_error_code() and PGM_error_message() to check the error.

void PGM_update_model(PGM_Handle *handle, PGM_PowerGridModel *model, PGM_ConstDataset const *update_dataset)

Update the model by changing mutable attributes of some elements.

All the elements you supply in the update dataset should have valid ids which exist in the original model.

Use PGM_error_code() and PGM_error_message() to check if there are errors in the update.

Parameters:
  • handle

  • model – A pointer to an existing model.

  • update_dataset – Pointer to an instance of PGM_ConstDataset. It should have data type “update”.

Returns:

PGM_PowerGridModel *PGM_copy_model(PGM_Handle *handle, PGM_PowerGridModel const *model)

Make a copy of an existing model.

The returned model need to be freed by PGM_destroy_model()

Parameters:
  • handle

  • model – A pointer to an existing model

Returns:

A opaque pointer to the new copy. If there are errors during the creation, a NULL is returned. Use PGM_error_code() and PGM_error_message() to check the error.

void PGM_get_indexer(PGM_Handle *handle, PGM_PowerGridModel const *model, char const *component, PGM_Idx size, PGM_ID const *ids, PGM_Idx *indexer)

Get the sequence numbers based on list of ids in a given component.

For example, if there are 5 nodes in the model with id [10, 2, 5, 15, 30]. We have a node ID list of [2, 5, 15, 5, 10, 10, 30]. We would like to know the sequence number of each element in the model. Calling this function should result in a sequence array of [1, 2, 3, 2, 0, 0, 4].

If you supply a non-existing ID in the ID array, an error will be raised. Use PGM_error_code() and PGM_error_message() to check the error.

Parameters:
  • handle

  • model – A pointer to an existing model.

  • component – A char const* string as component name.

  • size – The size of the ID array.

  • ids – A pointer to a PGM_ID array buffer, this should be at least length of size.

  • indexer – A pointer to a PGM_Idx array buffer. The results will be written to this array. The array should be pre-allocated with at least length of size.

void PGM_calculate(PGM_Handle *handle, PGM_PowerGridModel *model, PGM_Options const *opt, PGM_MutableDataset const *output_dataset, PGM_ConstDataset const *batch_dataset)

Execute a one-time or batch calculation.

This is the main function to execute calculation. You can choose to execute one-time calculation or batch calculation, by controlling the batch_dataset argument. If batch_dataset == NULL, it is a one-time calculation. If batch_dataset != NULL, it is a batch calculation with batch update in the batch_dataset.

You need to pre-allocate all output buffer.

Use PGM_error_code() and PGM_error_message() to check the error.

Parameters:
  • handle

  • model – A pointer to an existing model.

  • opt – A pointer to options, you need to pre-set all the calculation options you want.

  • output_dataset – A pointer to an instance of PGM_MutableDataset. The dataset should have type “*_output”, depending on the type of dataset. You need to pre-allocate all output memory buffers. You do not need to output all the component types as in the input. For example, you can choose only create output buffers for node, not for line.

  • batch_dataset – A pointer to an instance of PGM_ConstDataset for batch calculation. Or NULL for single calculation. The dataset should have is_batch == true. The type of the dataset should be “update”.

Returns:

void PGM_destroy_model(PGM_PowerGridModel *model)

Destroy the model returned by PGM_create_model() or PGM_copy_model().

Parameters:

model – The pointer to the model.

Serialization

The header power_grid_model_c/serialization.h contains functions for serializing and deserializing datasets.

Defines

POWER_GRID_MODEL_C_SERIALIZATION_H

header file which includes serialization functions

Functions

PGM_Deserializer *PGM_create_deserializer_from_binary_buffer(PGM_Handle *handle, char const *data, PGM_Idx size, PGM_Idx serialization_format)

Create a deserializer from binary buffer/byte stream.

Parameters:
  • handle

  • data – The pointer to the byte stream.

  • size – The size of the byte stream.

  • serialization_format – The desired data format of the serialization. See PGM_SerializationFormat .

Returns:

A pointer to the deserializer instance. Should be freed by PGM_destroy_deserializer(). Returns NULL if errors occured (check the handle for error information).

PGM_Deserializer *PGM_create_deserializer_from_null_terminated_string(PGM_Handle *handle, char const *data_string, PGM_Idx serialization_format)

Create a deserializer from a null terminated C string.

Parameters:
  • handle

  • data_string – The pointer to the null-terminated C string.

  • serialization_format – The desired data format of the serialization. See PGM_SerializationFormat .

Returns:

A pointer to the deserializer instance. Should be freed by PGM_destroy_deserializer(). Returns NULL if errors occured (check the handle for error information).

PGM_WritableDataset *PGM_deserializer_get_dataset(PGM_Handle *handle, PGM_Deserializer *deserializer)

Get the PGM_WritableDataset object from the deserializer.

Parameters:
  • handle

  • deserializer – The pointer to the deserializer.

Returns:

A pointer the instance of PGM_WritableDataset. The pointer has the same lifetime as the deserializer. Use PGM_writable_dataset_get_info() to get the information of the dataset. Use PGM_writable_dataset_set_buffer() to set buffer.

void PGM_deserializer_parse_to_buffer(PGM_Handle *handle, PGM_Deserializer *deserializer)

Parse the dataset and write to the user-provided buffers. The buffers must be set through PGM_writable_dataset_set_buffer().

Parameters:
  • handle

  • deserializer – The pointer to the deserializer

Returns:

No return value; check handle for error.

void PGM_destroy_deserializer(PGM_Deserializer *deserializer)

Destory deserializer.

Parameters:

deserializer – pointer to deserializer

Returns:

PGM_Serializer *PGM_create_serializer(PGM_Handle *handle, PGM_ConstDataset const *dataset, PGM_Idx serialization_format)

Create a serializer object based on input dataset, the buffers must be set in advance.

Parameters:
  • handle

  • dataset – A pointer to an instance of PGM_ConstDataset

  • serialization_format – The desired data format of the serialization. See PGM_SerializationFormat .

Returns:

A pointer to the new serializer object. Should be freed by PGM_destroy_serializer() Returns NULL if errors occured (check the handle for error information).

void PGM_serializer_get_to_binary_buffer(PGM_Handle *handle, PGM_Serializer *serializer, PGM_Idx use_compact_list, char const **data, PGM_Idx *size)

Serialize the dataset into a binary buffer format.

Parameters:
  • handle

  • serializer – A pointer to an existing serializer.

  • use_compact_list – 1 for use compact list per element of serialization; 0 for use dictionary per element.

  • data – Output argument: the data pointer of the packed buffer will be written to *data.

  • size – Output argument: the length of the packed buffer will be written to *size.

Returns:

No return value; check handle for error.

char const *PGM_serializer_get_to_zero_terminated_string(PGM_Handle *handle, PGM_Serializer *serializer, PGM_Idx use_compact_list, PGM_Idx indent)

Serialize the dataset into a zero terminated C string. Only supported for uncompressed data formats.

Parameters:
  • handle

  • serializer – A pointer to an existing serializer.

  • use_compact_list – 1 for use compact list per element of serialization; 0 for use dictionary per element.

  • indent – The indentation of the JSON, use -1 for no indent and no new line (compact format).

Returns:

A NULL-terminated json string. Returns NULL if errors occured (check the handle for error information).

void PGM_destroy_serializer(PGM_Serializer *serializer)

Destroy serializer.

Parameters:

serializer – The pointer to the serializer.

Returns:

Dataset Definitions

The header power_grid_model_c/dataset_definitions.h contains extern global pointer variables of all datasets, compoments, and attributes. This header is not included in power_grid_model_c.h, you need to include it separately.

Defines

POWER_GRID_MODEL_C_DATASET_DEFINITIONS_H

header file which includes helper extern global variables of meta data pointers to all datasets, compoments, and attributes

Variables

PGM_MetaDataset const *const PGM_def_input
PGM_MetaComponent const *const PGM_def_input_node
PGM_MetaAttribute const *const PGM_def_input_node_id
PGM_MetaAttribute const *const PGM_def_input_node_u_rated
PGM_MetaComponent const *const PGM_def_input_line
PGM_MetaAttribute const *const PGM_def_input_line_id
PGM_MetaAttribute const *const PGM_def_input_line_from_node
PGM_MetaAttribute const *const PGM_def_input_line_to_node
PGM_MetaAttribute const *const PGM_def_input_line_from_status
PGM_MetaAttribute const *const PGM_def_input_line_to_status
PGM_MetaAttribute const *const PGM_def_input_line_r1
PGM_MetaAttribute const *const PGM_def_input_line_x1
PGM_MetaAttribute const *const PGM_def_input_line_c1
PGM_MetaAttribute const *const PGM_def_input_line_tan1
PGM_MetaAttribute const *const PGM_def_input_line_r0
PGM_MetaAttribute const *const PGM_def_input_line_x0
PGM_MetaAttribute const *const PGM_def_input_line_c0
PGM_MetaAttribute const *const PGM_def_input_line_tan0
PGM_MetaAttribute const *const PGM_def_input_line_i_n
PGM_MetaComponent const *const PGM_def_input_transformer
PGM_MetaAttribute const *const PGM_def_input_transformer_id
PGM_MetaAttribute const *const PGM_def_input_transformer_from_node
PGM_MetaAttribute const *const PGM_def_input_transformer_to_node
PGM_MetaAttribute const *const PGM_def_input_transformer_from_status
PGM_MetaAttribute const *const PGM_def_input_transformer_to_status
PGM_MetaAttribute const *const PGM_def_input_transformer_u1
PGM_MetaAttribute const *const PGM_def_input_transformer_u2
PGM_MetaAttribute const *const PGM_def_input_transformer_sn
PGM_MetaAttribute const *const PGM_def_input_transformer_uk
PGM_MetaAttribute const *const PGM_def_input_transformer_pk
PGM_MetaAttribute const *const PGM_def_input_transformer_i0
PGM_MetaAttribute const *const PGM_def_input_transformer_p0
PGM_MetaAttribute const *const PGM_def_input_transformer_winding_from
PGM_MetaAttribute const *const PGM_def_input_transformer_winding_to
PGM_MetaAttribute const *const PGM_def_input_transformer_clock
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_side
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_pos
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_min
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_max
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_nom
PGM_MetaAttribute const *const PGM_def_input_transformer_tap_size
PGM_MetaAttribute const *const PGM_def_input_transformer_uk_min
PGM_MetaAttribute const *const PGM_def_input_transformer_uk_max
PGM_MetaAttribute const *const PGM_def_input_transformer_pk_min
PGM_MetaAttribute const *const PGM_def_input_transformer_pk_max
PGM_MetaAttribute const *const PGM_def_input_transformer_r_grounding_from
PGM_MetaAttribute const *const PGM_def_input_transformer_x_grounding_from
PGM_MetaAttribute const *const PGM_def_input_transformer_r_grounding_to
PGM_MetaAttribute const *const PGM_def_input_transformer_x_grounding_to
PGM_MetaComponent const *const PGM_def_input_three_winding_transformer
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_id
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_node_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_node_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_node_3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_status_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_status_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_status_3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_u1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_u2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_u3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_sn_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_sn_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_sn_3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_12
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_13
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_23
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_12
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_13
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_23
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_i0
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_p0
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_winding_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_winding_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_winding_3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_clock_12
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_clock_13
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_side
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_pos
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_nom
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_tap_size
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_12_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_12_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_13_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_13_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_23_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_uk_23_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_12_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_12_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_13_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_13_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_23_min
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_pk_23_max
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_r_grounding_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_x_grounding_1
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_r_grounding_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_x_grounding_2
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_r_grounding_3
PGM_MetaAttribute const *const PGM_def_input_three_winding_transformer_x_grounding_3
PGM_MetaComponent const *const PGM_def_input_sym_load
PGM_MetaAttribute const *const PGM_def_input_sym_load_id
PGM_MetaAttribute const *const PGM_def_input_sym_load_node
PGM_MetaAttribute const *const PGM_def_input_sym_load_status
PGM_MetaAttribute const *const PGM_def_input_sym_load_type
PGM_MetaAttribute const *const PGM_def_input_sym_load_p_specified
PGM_MetaAttribute const *const PGM_def_input_sym_load_q_specified
PGM_MetaComponent const *const PGM_def_input_sym_gen
PGM_MetaAttribute const *const PGM_def_input_sym_gen_id
PGM_MetaAttribute const *const PGM_def_input_sym_gen_node
PGM_MetaAttribute const *const PGM_def_input_sym_gen_status
PGM_MetaAttribute const *const PGM_def_input_sym_gen_type
PGM_MetaAttribute const *const PGM_def_input_sym_gen_p_specified
PGM_MetaAttribute const *const PGM_def_input_sym_gen_q_specified
PGM_MetaComponent const *const PGM_def_input_asym_load
PGM_MetaAttribute const *const PGM_def_input_asym_load_id
PGM_MetaAttribute const *const PGM_def_input_asym_load_node
PGM_MetaAttribute const *const PGM_def_input_asym_load_status
PGM_MetaAttribute const *const PGM_def_input_asym_load_type
PGM_MetaAttribute const *const PGM_def_input_asym_load_p_specified
PGM_MetaAttribute const *const PGM_def_input_asym_load_q_specified
PGM_MetaComponent const *const PGM_def_input_asym_gen
PGM_MetaAttribute const *const PGM_def_input_asym_gen_id
PGM_MetaAttribute const *const PGM_def_input_asym_gen_node
PGM_MetaAttribute const *const PGM_def_input_asym_gen_status
PGM_MetaAttribute const *const PGM_def_input_asym_gen_type
PGM_MetaAttribute const *const PGM_def_input_asym_gen_p_specified
PGM_MetaAttribute const *const PGM_def_input_asym_gen_q_specified
PGM_MetaComponent const *const PGM_def_input_shunt
PGM_MetaAttribute const *const PGM_def_input_shunt_id
PGM_MetaAttribute const *const PGM_def_input_shunt_node
PGM_MetaAttribute const *const PGM_def_input_shunt_status
PGM_MetaAttribute const *const PGM_def_input_shunt_g1
PGM_MetaAttribute const *const PGM_def_input_shunt_b1
PGM_MetaAttribute const *const PGM_def_input_shunt_g0
PGM_MetaAttribute const *const PGM_def_input_shunt_b0
PGM_MetaComponent const *const PGM_def_input_source
PGM_MetaAttribute const *const PGM_def_input_source_id
PGM_MetaAttribute const *const PGM_def_input_source_node
PGM_MetaAttribute const *const PGM_def_input_source_status
PGM_MetaAttribute const *const PGM_def_input_source_u_ref
PGM_MetaAttribute const *const PGM_def_input_source_u_ref_angle
PGM_MetaAttribute const *const PGM_def_input_source_sk
PGM_MetaAttribute const *const PGM_def_input_source_rx_ratio
PGM_MetaAttribute const *const PGM_def_input_source_z01_ratio
PGM_MetaComponent const *const PGM_def_input_sym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_input_sym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_input_sym_voltage_sensor_measured_object
PGM_MetaAttribute const *const PGM_def_input_sym_voltage_sensor_u_sigma
PGM_MetaAttribute const *const PGM_def_input_sym_voltage_sensor_u_measured
PGM_MetaAttribute const *const PGM_def_input_sym_voltage_sensor_u_angle_measured
PGM_MetaComponent const *const PGM_def_input_asym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_input_asym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_input_asym_voltage_sensor_measured_object
PGM_MetaAttribute const *const PGM_def_input_asym_voltage_sensor_u_sigma
PGM_MetaAttribute const *const PGM_def_input_asym_voltage_sensor_u_measured
PGM_MetaAttribute const *const PGM_def_input_asym_voltage_sensor_u_angle_measured
PGM_MetaComponent const *const PGM_def_input_sym_power_sensor
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_measured_object
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_measured_terminal_type
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_power_sigma
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_p_measured
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_q_measured
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_p_sigma
PGM_MetaAttribute const *const PGM_def_input_sym_power_sensor_q_sigma
PGM_MetaComponent const *const PGM_def_input_asym_power_sensor
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_measured_object
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_measured_terminal_type
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_power_sigma
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_p_measured
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_q_measured
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_p_sigma
PGM_MetaAttribute const *const PGM_def_input_asym_power_sensor_q_sigma
PGM_MetaComponent const *const PGM_def_input_fault
PGM_MetaAttribute const *const PGM_def_input_fault_id
PGM_MetaAttribute const *const PGM_def_input_fault_status
PGM_MetaAttribute const *const PGM_def_input_fault_fault_type
PGM_MetaAttribute const *const PGM_def_input_fault_fault_phase
PGM_MetaAttribute const *const PGM_def_input_fault_fault_object
PGM_MetaAttribute const *const PGM_def_input_fault_r_f
PGM_MetaAttribute const *const PGM_def_input_fault_x_f
PGM_MetaDataset const *const PGM_def_sym_output
PGM_MetaComponent const *const PGM_def_sym_output_node
PGM_MetaAttribute const *const PGM_def_sym_output_node_id
PGM_MetaAttribute const *const PGM_def_sym_output_node_energized
PGM_MetaAttribute const *const PGM_def_sym_output_node_u_pu
PGM_MetaAttribute const *const PGM_def_sym_output_node_u
PGM_MetaAttribute const *const PGM_def_sym_output_node_u_angle
PGM_MetaAttribute const *const PGM_def_sym_output_node_p
PGM_MetaAttribute const *const PGM_def_sym_output_node_q
PGM_MetaComponent const *const PGM_def_sym_output_line
PGM_MetaAttribute const *const PGM_def_sym_output_line_id
PGM_MetaAttribute const *const PGM_def_sym_output_line_energized
PGM_MetaAttribute const *const PGM_def_sym_output_line_loading
PGM_MetaAttribute const *const PGM_def_sym_output_line_p_from
PGM_MetaAttribute const *const PGM_def_sym_output_line_q_from
PGM_MetaAttribute const *const PGM_def_sym_output_line_i_from
PGM_MetaAttribute const *const PGM_def_sym_output_line_s_from
PGM_MetaAttribute const *const PGM_def_sym_output_line_p_to
PGM_MetaAttribute const *const PGM_def_sym_output_line_q_to
PGM_MetaAttribute const *const PGM_def_sym_output_line_i_to
PGM_MetaAttribute const *const PGM_def_sym_output_line_s_to
PGM_MetaComponent const *const PGM_def_sym_output_transformer
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_id
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_energized
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_loading
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_p_from
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_q_from
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_i_from
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_s_from
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_p_to
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_q_to
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_i_to
PGM_MetaAttribute const *const PGM_def_sym_output_transformer_s_to
PGM_MetaComponent const *const PGM_def_sym_output_three_winding_transformer
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_id
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_energized
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_loading
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_p_1
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_q_1
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_i_1
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_s_1
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_p_2
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_q_2
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_i_2
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_s_2
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_p_3
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_q_3
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_i_3
PGM_MetaAttribute const *const PGM_def_sym_output_three_winding_transformer_s_3
PGM_MetaComponent const *const PGM_def_sym_output_sym_load
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_id
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_energized
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_p
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_q
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_i
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_s
PGM_MetaAttribute const *const PGM_def_sym_output_sym_load_pf
PGM_MetaComponent const *const PGM_def_sym_output_sym_gen
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_id
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_energized
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_p
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_q
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_i
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_s
PGM_MetaAttribute const *const PGM_def_sym_output_sym_gen_pf
PGM_MetaComponent const *const PGM_def_sym_output_asym_load
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_id
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_energized
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_p
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_q
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_i
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_s
PGM_MetaAttribute const *const PGM_def_sym_output_asym_load_pf
PGM_MetaComponent const *const PGM_def_sym_output_asym_gen
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_id
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_energized
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_p
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_q
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_i
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_s
PGM_MetaAttribute const *const PGM_def_sym_output_asym_gen_pf
PGM_MetaComponent const *const PGM_def_sym_output_shunt
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_id
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_energized
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_p
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_q
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_i
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_s
PGM_MetaAttribute const *const PGM_def_sym_output_shunt_pf
PGM_MetaComponent const *const PGM_def_sym_output_source
PGM_MetaAttribute const *const PGM_def_sym_output_source_id
PGM_MetaAttribute const *const PGM_def_sym_output_source_energized
PGM_MetaAttribute const *const PGM_def_sym_output_source_p
PGM_MetaAttribute const *const PGM_def_sym_output_source_q
PGM_MetaAttribute const *const PGM_def_sym_output_source_i
PGM_MetaAttribute const *const PGM_def_sym_output_source_s
PGM_MetaAttribute const *const PGM_def_sym_output_source_pf
PGM_MetaComponent const *const PGM_def_sym_output_sym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_sym_output_sym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_sym_output_sym_voltage_sensor_energized
PGM_MetaAttribute const *const PGM_def_sym_output_sym_voltage_sensor_u_residual
PGM_MetaAttribute const *const PGM_def_sym_output_sym_voltage_sensor_u_angle_residual
PGM_MetaComponent const *const PGM_def_sym_output_asym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_sym_output_asym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_sym_output_asym_voltage_sensor_energized
PGM_MetaAttribute const *const PGM_def_sym_output_asym_voltage_sensor_u_residual
PGM_MetaAttribute const *const PGM_def_sym_output_asym_voltage_sensor_u_angle_residual
PGM_MetaComponent const *const PGM_def_sym_output_sym_power_sensor
PGM_MetaAttribute const *const PGM_def_sym_output_sym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_sym_output_sym_power_sensor_energized
PGM_MetaAttribute const *const PGM_def_sym_output_sym_power_sensor_p_residual
PGM_MetaAttribute const *const PGM_def_sym_output_sym_power_sensor_q_residual
PGM_MetaComponent const *const PGM_def_sym_output_asym_power_sensor
PGM_MetaAttribute const *const PGM_def_sym_output_asym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_sym_output_asym_power_sensor_energized
PGM_MetaAttribute const *const PGM_def_sym_output_asym_power_sensor_p_residual
PGM_MetaAttribute const *const PGM_def_sym_output_asym_power_sensor_q_residual
PGM_MetaComponent const *const PGM_def_sym_output_fault
PGM_MetaAttribute const *const PGM_def_sym_output_fault_id
PGM_MetaAttribute const *const PGM_def_sym_output_fault_energized
PGM_MetaDataset const *const PGM_def_asym_output
PGM_MetaComponent const *const PGM_def_asym_output_node
PGM_MetaAttribute const *const PGM_def_asym_output_node_id
PGM_MetaAttribute const *const PGM_def_asym_output_node_energized
PGM_MetaAttribute const *const PGM_def_asym_output_node_u_pu
PGM_MetaAttribute const *const PGM_def_asym_output_node_u
PGM_MetaAttribute const *const PGM_def_asym_output_node_u_angle
PGM_MetaAttribute const *const PGM_def_asym_output_node_p
PGM_MetaAttribute const *const PGM_def_asym_output_node_q
PGM_MetaComponent const *const PGM_def_asym_output_line
PGM_MetaAttribute const *const PGM_def_asym_output_line_id
PGM_MetaAttribute const *const PGM_def_asym_output_line_energized
PGM_MetaAttribute const *const PGM_def_asym_output_line_loading
PGM_MetaAttribute const *const PGM_def_asym_output_line_p_from
PGM_MetaAttribute const *const PGM_def_asym_output_line_q_from
PGM_MetaAttribute const *const PGM_def_asym_output_line_i_from
PGM_MetaAttribute const *const PGM_def_asym_output_line_s_from
PGM_MetaAttribute const *const PGM_def_asym_output_line_p_to
PGM_MetaAttribute const *const PGM_def_asym_output_line_q_to
PGM_MetaAttribute const *const PGM_def_asym_output_line_i_to
PGM_MetaAttribute const *const PGM_def_asym_output_line_s_to
PGM_MetaComponent const *const PGM_def_asym_output_transformer
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_id
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_energized
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_loading
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_p_from
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_q_from
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_i_from
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_s_from
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_p_to
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_q_to
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_i_to
PGM_MetaAttribute const *const PGM_def_asym_output_transformer_s_to
PGM_MetaComponent const *const PGM_def_asym_output_three_winding_transformer
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_id
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_energized
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_loading
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_p_1
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_q_1
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_i_1
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_s_1
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_p_2
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_q_2
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_i_2
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_s_2
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_p_3
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_q_3
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_i_3
PGM_MetaAttribute const *const PGM_def_asym_output_three_winding_transformer_s_3
PGM_MetaComponent const *const PGM_def_asym_output_sym_load
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_id
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_energized
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_p
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_q
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_i
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_s
PGM_MetaAttribute const *const PGM_def_asym_output_sym_load_pf
PGM_MetaComponent const *const PGM_def_asym_output_sym_gen
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_id
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_energized
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_p
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_q
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_i
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_s
PGM_MetaAttribute const *const PGM_def_asym_output_sym_gen_pf
PGM_MetaComponent const *const PGM_def_asym_output_asym_load
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_id
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_energized
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_p
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_q
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_i
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_s
PGM_MetaAttribute const *const PGM_def_asym_output_asym_load_pf
PGM_MetaComponent const *const PGM_def_asym_output_asym_gen
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_id
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_energized
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_p
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_q
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_i
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_s
PGM_MetaAttribute const *const PGM_def_asym_output_asym_gen_pf
PGM_MetaComponent const *const PGM_def_asym_output_shunt
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_id
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_energized
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_p
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_q
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_i
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_s
PGM_MetaAttribute const *const PGM_def_asym_output_shunt_pf
PGM_MetaComponent const *const PGM_def_asym_output_source
PGM_MetaAttribute const *const PGM_def_asym_output_source_id
PGM_MetaAttribute const *const PGM_def_asym_output_source_energized
PGM_MetaAttribute const *const PGM_def_asym_output_source_p
PGM_MetaAttribute const *const PGM_def_asym_output_source_q
PGM_MetaAttribute const *const PGM_def_asym_output_source_i
PGM_MetaAttribute const *const PGM_def_asym_output_source_s
PGM_MetaAttribute const *const PGM_def_asym_output_source_pf
PGM_MetaComponent const *const PGM_def_asym_output_sym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_asym_output_sym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_asym_output_sym_voltage_sensor_energized
PGM_MetaAttribute const *const PGM_def_asym_output_sym_voltage_sensor_u_residual
PGM_MetaAttribute const *const PGM_def_asym_output_sym_voltage_sensor_u_angle_residual
PGM_MetaComponent const *const PGM_def_asym_output_asym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_asym_output_asym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_asym_output_asym_voltage_sensor_energized
PGM_MetaAttribute const *const PGM_def_asym_output_asym_voltage_sensor_u_residual
PGM_MetaAttribute const *const PGM_def_asym_output_asym_voltage_sensor_u_angle_residual
PGM_MetaComponent const *const PGM_def_asym_output_sym_power_sensor
PGM_MetaAttribute const *const PGM_def_asym_output_sym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_asym_output_sym_power_sensor_energized
PGM_MetaAttribute const *const PGM_def_asym_output_sym_power_sensor_p_residual
PGM_MetaAttribute const *const PGM_def_asym_output_sym_power_sensor_q_residual
PGM_MetaComponent const *const PGM_def_asym_output_asym_power_sensor
PGM_MetaAttribute const *const PGM_def_asym_output_asym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_asym_output_asym_power_sensor_energized
PGM_MetaAttribute const *const PGM_def_asym_output_asym_power_sensor_p_residual
PGM_MetaAttribute const *const PGM_def_asym_output_asym_power_sensor_q_residual
PGM_MetaComponent const *const PGM_def_asym_output_fault
PGM_MetaAttribute const *const PGM_def_asym_output_fault_id
PGM_MetaAttribute const *const PGM_def_asym_output_fault_energized
PGM_MetaDataset const *const PGM_def_update
PGM_MetaComponent const *const PGM_def_update_node
PGM_MetaAttribute const *const PGM_def_update_node_id
PGM_MetaComponent const *const PGM_def_update_line
PGM_MetaAttribute const *const PGM_def_update_line_id
PGM_MetaAttribute const *const PGM_def_update_line_from_status
PGM_MetaAttribute const *const PGM_def_update_line_to_status
PGM_MetaComponent const *const PGM_def_update_transformer
PGM_MetaAttribute const *const PGM_def_update_transformer_id
PGM_MetaAttribute const *const PGM_def_update_transformer_from_status
PGM_MetaAttribute const *const PGM_def_update_transformer_to_status
PGM_MetaAttribute const *const PGM_def_update_transformer_tap_pos
PGM_MetaComponent const *const PGM_def_update_three_winding_transformer
PGM_MetaAttribute const *const PGM_def_update_three_winding_transformer_id
PGM_MetaAttribute const *const PGM_def_update_three_winding_transformer_status_1
PGM_MetaAttribute const *const PGM_def_update_three_winding_transformer_status_2
PGM_MetaAttribute const *const PGM_def_update_three_winding_transformer_status_3
PGM_MetaAttribute const *const PGM_def_update_three_winding_transformer_tap_pos
PGM_MetaComponent const *const PGM_def_update_sym_load
PGM_MetaAttribute const *const PGM_def_update_sym_load_id
PGM_MetaAttribute const *const PGM_def_update_sym_load_status
PGM_MetaAttribute const *const PGM_def_update_sym_load_p_specified
PGM_MetaAttribute const *const PGM_def_update_sym_load_q_specified
PGM_MetaComponent const *const PGM_def_update_sym_gen
PGM_MetaAttribute const *const PGM_def_update_sym_gen_id
PGM_MetaAttribute const *const PGM_def_update_sym_gen_status
PGM_MetaAttribute const *const PGM_def_update_sym_gen_p_specified
PGM_MetaAttribute const *const PGM_def_update_sym_gen_q_specified
PGM_MetaComponent const *const PGM_def_update_asym_load
PGM_MetaAttribute const *const PGM_def_update_asym_load_id
PGM_MetaAttribute const *const PGM_def_update_asym_load_status
PGM_MetaAttribute const *const PGM_def_update_asym_load_p_specified
PGM_MetaAttribute const *const PGM_def_update_asym_load_q_specified
PGM_MetaComponent const *const PGM_def_update_asym_gen
PGM_MetaAttribute const *const PGM_def_update_asym_gen_id
PGM_MetaAttribute const *const PGM_def_update_asym_gen_status
PGM_MetaAttribute const *const PGM_def_update_asym_gen_p_specified
PGM_MetaAttribute const *const PGM_def_update_asym_gen_q_specified
PGM_MetaComponent const *const PGM_def_update_shunt
PGM_MetaAttribute const *const PGM_def_update_shunt_id
PGM_MetaAttribute const *const PGM_def_update_shunt_status
PGM_MetaComponent const *const PGM_def_update_source
PGM_MetaAttribute const *const PGM_def_update_source_id
PGM_MetaAttribute const *const PGM_def_update_source_status
PGM_MetaAttribute const *const PGM_def_update_source_u_ref
PGM_MetaAttribute const *const PGM_def_update_source_u_ref_angle
PGM_MetaComponent const *const PGM_def_update_sym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_update_sym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_update_sym_voltage_sensor_u_sigma
PGM_MetaAttribute const *const PGM_def_update_sym_voltage_sensor_u_measured
PGM_MetaAttribute const *const PGM_def_update_sym_voltage_sensor_u_angle_measured
PGM_MetaComponent const *const PGM_def_update_asym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_update_asym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_update_asym_voltage_sensor_u_sigma
PGM_MetaAttribute const *const PGM_def_update_asym_voltage_sensor_u_measured
PGM_MetaAttribute const *const PGM_def_update_asym_voltage_sensor_u_angle_measured
PGM_MetaComponent const *const PGM_def_update_sym_power_sensor
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_power_sigma
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_p_measured
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_q_measured
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_p_sigma
PGM_MetaAttribute const *const PGM_def_update_sym_power_sensor_q_sigma
PGM_MetaComponent const *const PGM_def_update_asym_power_sensor
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_power_sigma
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_p_measured
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_q_measured
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_p_sigma
PGM_MetaAttribute const *const PGM_def_update_asym_power_sensor_q_sigma
PGM_MetaComponent const *const PGM_def_update_fault
PGM_MetaAttribute const *const PGM_def_update_fault_id
PGM_MetaAttribute const *const PGM_def_update_fault_status
PGM_MetaAttribute const *const PGM_def_update_fault_fault_type
PGM_MetaAttribute const *const PGM_def_update_fault_fault_phase
PGM_MetaAttribute const *const PGM_def_update_fault_fault_object
PGM_MetaAttribute const *const PGM_def_update_fault_r_f
PGM_MetaAttribute const *const PGM_def_update_fault_x_f
PGM_MetaDataset const *const PGM_def_sc_output
PGM_MetaComponent const *const PGM_def_sc_output_node
PGM_MetaAttribute const *const PGM_def_sc_output_node_id
PGM_MetaAttribute const *const PGM_def_sc_output_node_energized
PGM_MetaAttribute const *const PGM_def_sc_output_node_u_pu
PGM_MetaAttribute const *const PGM_def_sc_output_node_u
PGM_MetaAttribute const *const PGM_def_sc_output_node_u_angle
PGM_MetaComponent const *const PGM_def_sc_output_line
PGM_MetaAttribute const *const PGM_def_sc_output_line_id
PGM_MetaAttribute const *const PGM_def_sc_output_line_energized
PGM_MetaAttribute const *const PGM_def_sc_output_line_i_from
PGM_MetaAttribute const *const PGM_def_sc_output_line_i_from_angle
PGM_MetaAttribute const *const PGM_def_sc_output_line_i_to
PGM_MetaAttribute const *const PGM_def_sc_output_line_i_to_angle
PGM_MetaComponent const *const PGM_def_sc_output_transformer
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_id
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_energized
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_i_from
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_i_from_angle
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_i_to
PGM_MetaAttribute const *const PGM_def_sc_output_transformer_i_to_angle
PGM_MetaComponent const *const PGM_def_sc_output_three_winding_transformer
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_id
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_energized
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_1
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_1_angle
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_2
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_2_angle
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_3
PGM_MetaAttribute const *const PGM_def_sc_output_three_winding_transformer_i_3_angle
PGM_MetaComponent const *const PGM_def_sc_output_sym_load
PGM_MetaAttribute const *const PGM_def_sc_output_sym_load_id
PGM_MetaAttribute const *const PGM_def_sc_output_sym_load_energized
PGM_MetaAttribute const *const PGM_def_sc_output_sym_load_i
PGM_MetaAttribute const *const PGM_def_sc_output_sym_load_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_sym_gen
PGM_MetaAttribute const *const PGM_def_sc_output_sym_gen_id
PGM_MetaAttribute const *const PGM_def_sc_output_sym_gen_energized
PGM_MetaAttribute const *const PGM_def_sc_output_sym_gen_i
PGM_MetaAttribute const *const PGM_def_sc_output_sym_gen_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_asym_load
PGM_MetaAttribute const *const PGM_def_sc_output_asym_load_id
PGM_MetaAttribute const *const PGM_def_sc_output_asym_load_energized
PGM_MetaAttribute const *const PGM_def_sc_output_asym_load_i
PGM_MetaAttribute const *const PGM_def_sc_output_asym_load_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_asym_gen
PGM_MetaAttribute const *const PGM_def_sc_output_asym_gen_id
PGM_MetaAttribute const *const PGM_def_sc_output_asym_gen_energized
PGM_MetaAttribute const *const PGM_def_sc_output_asym_gen_i
PGM_MetaAttribute const *const PGM_def_sc_output_asym_gen_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_shunt
PGM_MetaAttribute const *const PGM_def_sc_output_shunt_id
PGM_MetaAttribute const *const PGM_def_sc_output_shunt_energized
PGM_MetaAttribute const *const PGM_def_sc_output_shunt_i
PGM_MetaAttribute const *const PGM_def_sc_output_shunt_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_source
PGM_MetaAttribute const *const PGM_def_sc_output_source_id
PGM_MetaAttribute const *const PGM_def_sc_output_source_energized
PGM_MetaAttribute const *const PGM_def_sc_output_source_i
PGM_MetaAttribute const *const PGM_def_sc_output_source_i_angle
PGM_MetaComponent const *const PGM_def_sc_output_sym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_sc_output_sym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_sc_output_sym_voltage_sensor_energized
PGM_MetaComponent const *const PGM_def_sc_output_asym_voltage_sensor
PGM_MetaAttribute const *const PGM_def_sc_output_asym_voltage_sensor_id
PGM_MetaAttribute const *const PGM_def_sc_output_asym_voltage_sensor_energized
PGM_MetaComponent const *const PGM_def_sc_output_sym_power_sensor
PGM_MetaAttribute const *const PGM_def_sc_output_sym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_sc_output_sym_power_sensor_energized
PGM_MetaComponent const *const PGM_def_sc_output_asym_power_sensor
PGM_MetaAttribute const *const PGM_def_sc_output_asym_power_sensor_id
PGM_MetaAttribute const *const PGM_def_sc_output_asym_power_sensor_energized
PGM_MetaComponent const *const PGM_def_sc_output_fault
PGM_MetaAttribute const *const PGM_def_sc_output_fault_id
PGM_MetaAttribute const *const PGM_def_sc_output_fault_energized
PGM_MetaAttribute const *const PGM_def_sc_output_fault_i_f
PGM_MetaAttribute const *const PGM_def_sc_output_fault_i_f_angle