69 #define BASIS_LAGRANGE_HERMITE_TP_TYPE 1 //< Lagrange Hermite tensor product basis \see BASIS_ROUTINES_BasisTypes,BASIS_ROUTINES 70 #define BASIS_SIMPLEX_TYPE 2 //< Simplex basis \see BASIS_ROUTINES_BasisTypes,BASIS_ROUTINES 73 #define BASIS_LINEAR_LAGRANGE_INTERPOLATION 1 //< Linear Lagrange interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 74 #define BASIS_QUADRATIC_LAGRANGE_INTERPOLATION 2 //< Quadratic Lagrange interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 75 #define BASIS_CUBIC_LAGRANGE_INTERPOLATION 3 //< Cubic Lagrange interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 76 #define BASIS_CUBIC_HERMITE_INTERPOLATION 4 //< Cubic Hermite interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 77 #define BASIS_QUADRATIC1_HERMITE_INTERPOLATION 5 //< Quadratic Hermite (no derivative at xi=0) interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 78 #define BASIS_QUADRATIC2_HERMITE_INTERPOLATION 6 //< Quadratic Hermite (no derivative at xi=1) interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 79 #define BASIS_LINEAR_SIMPLEX_INTERPOLATION 7 //< Linear Simplex interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 80 #define BASIS_QUADRATIC_SIMPLEX_INTERPOLATION 8 //< Quadratic Simplex interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 81 #define BASIS_CUBIC_SIMPLEX_INTERPOLATION 9 //< Cubic Simplex interpolation specification \see BASIS_ROUTINES_InterpolationSpecifications,BASIS_ROUTINES 83 #define FIELD_IO_INTERPOLATION_HEADER_SCALE 4 84 #define FIELD_IO_INTERPOLATION_HEADER_NODAL 5 85 #define FIELD_IO_INTERPOLATION_HEADER_GRID 6 86 #define FIELD_IO_INTERPOLATION_HEADER_GAUSS 7 87 #define FIELD_IO_INTERPOLATION_HEADER_CONSTANT 8 90 #define FIELD_GEOMETRIC_TYPE 1 //Geometric field \see FIELD_ROUTINES_FieldTypes,FIELD_ROUTINES 91 #define FIELD_FIBRE_TYPE 2 //Fibre field \see FIELD_ROUTINES_FieldTypes,FIELD_ROUTINES 92 #define FIELD_GENERAL_TYPE 3 //General field \see FIELD_ROUTINES_FieldTypes,FIELD_ROUTINES 93 #define FIELD_MATERIAL_TYPE 4 //Material field \see FIELD_ROUTINES_FieldTypes,FIELD_ROUTINES 94 #define FIELD_GEOMETRIC_GENERAL_TYPE 5 //Geometric general field \see FIELD_ROUTINES_FieldTypes,FIELD_ROUTINES 96 #define FIELD_U_VARIABLE_TYPE 1 //Standard variable type i.e., u \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 97 #define FIELD_DELUDELN_VARIABLE_TYPE 2 //Normal derivative variable type i.e., du/dn \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 98 #define FIELD_DELUDELT_VARIABLE_TYPE 3 //First time derivative variable type i.e., du/dt \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 99 #define FIELD_DEL2UDELT2_VARIABLE_TYPE 4 //Second type derivative variable type i.e., d^2u/dt^2 \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 100 #define FIELD_V_VARIABLE_TYPE 5 //Second standard variable type i.e., v \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 101 #define FIELD_DELVDELN_VARIABLE_TYPE 6 //Second normal variable type i.e., dv/dn \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 102 #define FIELD_U1_VARIABLE_TYPE 9 //Third standard variable type i.e., v \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 103 #define FIELD_U2_VARIABLE_TYPE 13 //Fourth standard variable type i.e., v \see FIELD_ROUTINES_VariableTypes,FIELD_ROUTINES 105 #define COORDINATE_RECTANGULAR_CARTESIAN_TYPE 1 //Rectangular Cartesian coordinate system type \see COORDINATE_ROUTINES_CoordinateSystemTypes,COORDINATE_ROUTINES 106 #define COORDINATE_CYCLINDRICAL_POLAR_TYPE 2 //Cylindrical polar coordinate system type \see COORDINATE_ROUTINES_CoordinateSystemTypes,COORDINATE_ROUTINES 107 #define COORDINATE_SPHERICAL_POLAR_TYPE 3 //Spherical polar coordinate system type \see COORDINATE_ROUTINES_CoordinateSystemTypes,COORDINATE_ROUTINES 108 #define COORDINATE_PROLATE_SPHEROIDAL_TYPE 4 //Prolate spheroidal coordinate system type \see COORDINATE_ROUTINES_CoordinateSystemTypes,COORDINATE_ROUTINES 109 #define COORDINATE_OBLATE_SPHEROIDAL_TYPE 5 //Oblate spheroidal coordinate system type \see COORDINATE_ROUTINES_CoordinateSystemTypes,COORDINATE_ROUTINES 111 #define NO_PART_DERIV 1 //No partial derivative i.e., u \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 113 #define FIRST_PART_DERIV 2 //First partial derivative i.e., du/ds \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 114 #define SECOND_PART_DERIV 3 //Second partial derivative i.e., d^2u/ds^2 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 116 #define PART_DERIV_S1 2 //First partial derivative in the s1 direction i.e., du/ds1 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 117 #define PART_DERIV_S1_S1 3 //Second partial derivative in the s1 direction i.e., d^2u/ds1ds1 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 118 #define PART_DERIV_S2 4 //First partial derivative in the s2 direction i.e., du/ds2 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 119 #define PART_DERIV_S2_S2 5 //Second partial derivative in the s2 direction i.e., d^2u/ds2ds2 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 120 #define PART_DERIV_S1_S2 6 //Cross derivative in the s1 and s2 direction i.e., d^2u/ds1ds2 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 121 #define PART_DERIV_S3 7 //First partial derivative in the s3 direction i.e., du/ds3 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 122 #define PART_DERIV_S3_S3 8 //Second partial derivative in the s3 direction i.e., d^2u/ds3ds3 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 123 #define PART_DERIV_S1_S3 9 //Cross derivative in the s1 and s3 direction i.e., d^2u/ds1ds3 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 124 #define PART_DERIV_S2_S3 10 //Cross derivative in the s2 and s3 direction i.e., d^2u/ds2ds3 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 125 #define PART_DERIV_S1_S2_S3 11 //Cross derivative in the s1, s2 and s3 direction i.e., d^3u/ds1ds2ds3 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 126 #define PART_DERIV_S4 12 //First partial derivative in the s4 direction i.e., du/ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 127 #define PART_DERIV_S4_S4 13 //Second partial derivative in the s4 direction i.e., d^2u/ds4ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 128 #define PART_DERIV_S1_S4 14 //Cross derivative in the s1 and s4 direction i.e., d^2u/ds1ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 129 #define PART_DERIV_S2_S4 15 //Cross derivative in the s2 and s4 direction i.e., d^2u/ds2ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 130 #define PART_DERIV_S3_S4 16 //Cross derivative in the s3 and s4 direction i.e., d^2u/ds3ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 131 #define PART_DERIV_S1_S2_S4 17 //Cross derivative in the s1, s2 and s4 direction i.e., d^3u/ds1ds2ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 132 #define PART_DERIV_S1_S3_S4 18 //Cross derivative in the s1, s3 and s4 direction i.e., d^3u/ds1ds3ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 133 #define PART_DERIV_S2_S3_S4 19 //Cross derivative in the s2, s3 and s4 direction i.e., d^3u/ds2ds3ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 134 #define PART_DERIV_S1_S2_S3_S4 20 //Cross derivative in the s1, s2, s3 and s4 direction i.e., d^4u/ds1ds2ds3ds4 \see CONSTANTS_PartialDerivativeConstants,CONSTANTS 182 FILE *f = fopen(
"D:\\err.txt",
"w" );
197 va_start( args, format );
198 if( vfprintf( session->
file, format, args ) < 0 )
205 return session->
error;
213 while( entry != NULL )
215 if( entry->
handle == handle )
250 return FieldExport_FPrintf( session,
" Shape. Dimension=%d, simplex(2)*simplex\n", dimensions );
252 return FieldExport_FPrintf( session,
" Shape. Dimension=%d, simplex(2;3)*simplex*simplex\n", dimensions );
271 int *linked = malloc(
sizeof(
int) * numberOfXi );
274 for( i = 0; i < numberOfXi; i++ )
276 switch( interpolationXi[i] )
292 for( i = 0; i < numberOfXi; i++ )
296 label =
"l.Lagrange";
304 label =
"l.Lagrange";
308 switch( interpolationXi[i] )
311 label =
"l.Lagrange";
314 label =
"q.Lagrange";
317 label =
"c.Lagrange";
323 label =
"LagrangeHermite";
326 label =
"HermiteLagrange";
349 for( j = i+1; j < numberOfXi; j++ )
364 if( i < ( numberOfXi - 1 ) )
390 return session->
error;
395 const int numberOfScaleFactors)
399 int *linked = malloc(
sizeof(
int) * numberOfXi );
402 for( i = 0; i < numberOfXi; i++ )
404 switch( interpolationXi[i] )
420 for( i = 0; i < numberOfXi; i++ )
422 switch( interpolationXi[i] )
425 label =
"l.Lagrange";
428 label =
"q.Lagrange";
431 label =
"c.Lagrange";
437 label =
"LagrangeHermite";
440 label =
"HermiteLagrange";
461 for( j = i+1; j < numberOfXi; j++ )
476 if( i < ( numberOfXi - 1 ) )
486 return session->
error;
495 switch( variableType )
500 return "field, normal derivative of variable";
502 return "field, first time derivative of variable";
504 return "field, second time derivative of variable";
506 return "field, real";
509 switch( variableType )
512 return "anatomical, fibre";
514 return "normal derivative of variable";
516 return "first time derivative of variable";
518 return "second time derivative of variable";
523 switch( variableType )
526 return "field, rectangular cartesian";
528 return "field, rectangular cartesian";
530 return "field, rectangular cartesian";
532 return "field, rectangular cartesian";
534 return "field, rectangular cartesian";
536 return "field, first time derivative of variable";
538 return "field, second time derivative of variable";
540 return "field, real";
543 switch( variableType )
546 return "field, rectangular cartesian";
548 return "field, normal derivative of variable";
550 return "field, first time derivative of variable";
552 return "field, second time derivative of variable";
554 return "field, real";
557 switch( variableType )
560 return "field, rectangular cartesian";
562 return "field, rectangular cartesian";
564 return "field, first time derivative of variable";
566 return "field, second time derivative of variable";
568 return "field, real";
571 switch( variableType )
574 return "field, unknown standand variable type";
576 return "field, unknown normal derivative of variable";
578 return "field, unknown first time derivative of variable";
580 return "field, unknown second time derivative of variable";
582 return "field, real";
590 switch( coordinateSystemType )
593 return "coordinate, rectangular cartesian";
609 switch( coordinateSystemType )
612 if( componentNumber == 1 )
616 else if( componentNumber == 2 )
620 else if( componentNumber == 3 )
652 int coordinateSystemType,
const int componentCount )
654 char *coordinateLabel;
658 return FieldExport_FPrintf( session,
" %d) %s, %s, #Components=%d\n", variableIndex, variableName, coordinateLabel, componentCount );
663 const int fieldType,
const int variableType,
const int componentCount )
669 return FieldExport_FPrintf( session,
" %d) %s, %s, #Components=%d\n", variableIndex, variableName, variableLabel, componentCount );
674 const int componentNumber,
const int interpType,
const int numberOfXi,
const int *
const interpolationXi )
680 if( componentLabel == NULL )
691 return session->
error;
699 const int componentNumber,
const int interpType,
const int numberOfXi,
const int *
const interpolationXi )
705 return session->
error;
731 for( i = 0; i < numberOfXi; i++ )
733 numGrid[i]=numberGauss[i]-1;
745 return session->
error;
748 for( i = 0; i < numberOfXi; i++ )
752 return session->
error;
755 if( i < ( numberOfXi - 1 ) )
759 return session->
error;
765 return session->
error;
768 return session->
error;
773 const int *
const elementDerivatives,
const int *
const nodeIndexes,
const int *
const scaleIndexes )
776 int derivativeIndex = 0;
781 for( i = 0; i < nodeCount; i++ )
785 for( j = 0; j < derivativeCount[i]; j++ )
791 for( j = 0; j < derivativeCount[i]; j++ )
794 if( scaleIndex >= 0 )
806 return session->
error;
812 if( dimensionCount == 3 )
816 else if( dimensionCount == 2 )
835 for( i = 0; i < nodeCount; i++ )
842 return session->
error;
857 for( i = 0; i < scaleCount; i++ )
864 return session->
error;
880 for( i = 0; i < valueCount; i++ )
887 return session->
error;
896 strcpy( hd5Name, name );
897 strcat( hd5Name,
".h5" );
904 session->
fileSession.hd5Handle = H5Fcreate( hd5Name, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
931 sessions.
next = session;
933 *handle = session->
handle;
954 static int FieldExport_File_HD5_NodeValues(
FileSession *session,
const int nodeNumber,
const int valueCount,
const double *
const values )
956 hid_t dataset_id, dataspace_id, attribute_id, attribute_dataspace_id;
962 dims[0] = valueCount;
963 if( ( dataspace_id = H5Screate_simple( 1, dims, NULL ) ) < 0 )
968 sprintf( setName,
"/node%d", nodeNumber );
969 if( ( dataset_id = H5Dcreate( session->hd5Handle, setName, H5T_NATIVE_DOUBLE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ) ) < 0 )
975 if( ( attribute_dataspace_id = H5Screate_simple( 1, dims, NULL ) ) < 0 )
979 if( ( attribute_id = H5Acreate( dataset_id,
"Node", H5T_STD_I32BE, attribute_dataspace_id, H5P_DEFAULT, H5P_DEFAULT ) ) < 0 )
984 attributes[0] = nodeNumber;
985 if( ( status = H5Awrite( attribute_id, H5T_NATIVE_INT, attributes ) ) < 0 )
990 if( ( status = H5Aclose( attribute_id ) ) < 0 )
995 if( ( status = H5Dwrite( dataset_id, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values ) ) < 0 )
1000 if( ( status = H5Dclose( dataset_id ) ) < 0 )
1005 if( ( status = H5Sclose( attribute_dataspace_id ) ) < 0 )
1010 if( ( status = H5Sclose( dataspace_id ) ) < 0 )
1025 static int lastNodeNumber = -1;
1027 if( nodeNumber != lastNodeNumber )
1029 lastNodeNumber = nodeNumber;
1033 for( i = 0; i < valueCount; i++ )
1040 status = FieldExport_File_HD5_NodeValues( session, nodeNumber, valueCount, values );
1049 return session->
error;
1057 if( ( numberOfDerivatives == 1 ) && ( derivatives[0] ==
NO_PART_DERIV ) )
1059 return session->
error;
1063 for( i = 0; i < numberOfDerivatives; i++ )
1069 switch( derivatives[i] )
1136 return session->
error;
1141 const int variableType,
const int numberOfDerivatives,
const int *
const derivatives,
const int valueIndex )
1144 FieldExport_FPrintf( session,
" %d. Value index= %d, #Derivatives= %d", componentNumber, valueIndex, numberOfDerivatives - 1 );
1148 return session->
error;
1153 const int numberOfDerivatives,
const int *
const derivatives,
const int valueIndex )
1158 if( componentLabel == NULL )
1160 FieldExport_FPrintf( session,
" %d. Value index= %d, #Derivatives= %d", componentNumber, valueIndex, numberOfDerivatives - 1 );
1164 FieldExport_FPrintf( session,
" %s. Value index= %d, #Derivatives= %d", componentLabel, valueIndex, numberOfDerivatives - 1 );
1169 return session->
error;
1183 else if(interpType == 2)
1187 else if(interpType == 3)
1191 else if(interpType == 4)
1195 else if(interpType == 5)
1199 else if(interpType == 6)
1228 if( session == NULL )
1247 if( session == NULL )
1266 if( session == NULL )
1285 if( session == NULL )
1304 if( session == NULL )
1323 if( session == NULL )
1339 const int componentCount )
1343 if( session == NULL )
1359 const int componentCount )
1363 if( session == NULL )
1370 char* escapedName = (
char*)malloc(strlen(variableName)+1);
1371 strcpy(escapedName, variableName);
1373 for (i=0;i<strlen(escapedName);++i)
if (escapedName[i] ==
'/') escapedName[i] =
'_';
1384 const int componentNumber,
const int interpType,
const int numberOfXi,
const int *
const interpolationXi )
1388 if( session == NULL )
1403 int FieldExport_Component(
const int handle,
const int componentNumber,
const int interpType,
const int numberOfXi,
const int *
const interpolationXi )
1407 if( session == NULL )
1426 if( session == NULL )
1442 const int *
const elementDerivatives,
const int *
const nodeIndexes,
const int *
const scaleIndexes )
1446 if( session == NULL )
1465 if( session == NULL )
1484 if( session == NULL )
1503 if( session == NULL )
1522 if( session == NULL )
1541 if( session == NULL )
1562 if( session == NULL )
1580 const int numberOfDerivatives,
const int *
const derivatives,
const int valueIndex )
1584 if( session == NULL )
1602 const int numberOfDerivatives,
const int *
const derivatives,
const int valueIndex )
1606 if( session == NULL )
1626 if( session == NULL )
1632 if (numberOfVersions > 1) {
1648 if( session == NULL )
static int FieldExport_File_ElementNodeScales(FileSession *session, const int isFirstSet, const int scaleCount, const double *const scales)
static int FieldExport_File_Component(FileSession *const session, const int componentNumber, const int interpType, const int numberOfXi, const int *const interpolationXi)
int FieldExport_CoordinateComponent(const int handle, int coordinateSystemType, const int componentNumber, const int interpType, const int numberOfXi, const int *const interpolationXi)
#define PART_DERIV_S1_S2_S3
static char * FieldExport_GetCoordinateVariableLabel(int coordinateSystemType)
#define BASIS_SIMPLEX_TYPE
#define FIELD_DELUDELT_VARIABLE_TYPE
static int FieldExport_File_ElementNodeIndices(FileSession *session, const int nodeCount, const int *const indices)
static char * FieldExport_GetCoordinateComponentLabel(int coordinateSystemType, int componentNumber)
#define FIELD_U1_VARIABLE_TYPE
#define BASIS_CUBIC_LAGRANGE_INTERPOLATION
static SessionListEntry sessions
static int FieldExport_File_CoordinateDerivativeIndices(FileSession *session, const int componentNumber, int coordinateSystemType, const int numberOfDerivatives, const int *const derivatives, const int valueIndex)
static int FieldExport_File_NodeValues(FileSession *session, const int nodeNumber, const int valueCount, const double *const values)
int FieldExport_ScalingFactorCount(const int handle, const int scalingFactorCount)
#define FIELD_GEOMETRIC_GENERAL_TYPE
#define BASIS_LINEAR_SIMPLEX_INTERPOLATION
#define FIELD_IO_INTERPOLATION_HEADER_CONSTANT
int FieldExport_NodeValues(const int handle, const int nodeNumber, const int valueCount, const double *const values)
static int FieldExport_File_Group(FileSession *const session, const char *const label)
int FieldExport_ElementGridValues(const int handle, const int isFirstSet, const int dimensionCount, const double value)
int FieldExport_OpenSession(const int type, const char *const name, int *const handle)
#define FIELD_GEOMETRIC_TYPE
#define FIELD_EXPORT_ERROR_HDF5_ERROR
#define BASIS_CUBIC_SIMPLEX_INTERPOLATION
#define FIELD_IO_INTERPOLATION_HEADER_GAUSS
#define BASIS_QUADRATIC_LAGRANGE_INTERPOLATION
#define FIELD_EXPORT_ERROR_CLOSED_HANDLE
int FieldExport_InterpolationType(const int interpType)
#define BASIS_QUADRATIC_SIMPLEX_INTERPOLATION
static int FieldExport_File_CloseSession(SessionListEntry *session)
int FieldExport_ElementGridSize(const int handle, const int interpType, const int numberOfXi, const int *const numberGauss)
#define FIELD_EXPORT_ERROR_UNKNOWN_TYPE
int FieldExport_VersionInfo(const int handle, const int numberOfVersions)
int FieldExport_Variable(const int handle, const char *variableName, const int variableNumber, const int fieldType, const int variableType, const int componentCount)
#define FIELD_EXPORT_ERROR_FILE_IO
#define FIELD_EXPORT_NO_ERROR
#define FIELD_DELUDELN_VARIABLE_TYPE
struct _SessionListEntry SessionListEntry
static int FieldExport_File_FieldCount(FileSession *const session, const int fieldCount)
static int FieldExport_File_Variable(FileSession *const session, const char *variableName, const int variableIndex, const int fieldType, const int variableType, const int componentCount)
static int FieldExport_File_CoordinateComponent(FileSession *const session, int coordinateSystemType, const int componentNumber, const int interpType, const int numberOfXi, const int *const interpolationXi)
#define BASIS_CUBIC_HERMITE_INTERPOLATION
int FieldExport_ElementNodeIndices(const int handle, const int nodeCount, const int *const indices)
#define FIELD_IO_INTERPOLATION_HEADER_GRID
static int FieldExport_File_ElementGridValues(FileSession *session, const int isFirstSet, const int valueCount, const double value)
static int FieldExport_File_MeshDimensions(FileSession *const session, const int dimensions, const int basisType)
static int FieldExport_File_ScalingFactorCount(FileSession *const session, const int scalingFactorCount)
#define FIELD_U2_VARIABLE_TYPE
#define FIELD_EXPORT_ERROR_FILE_WRITE
static int FieldExport_File_OpenSession(const char *const name, int *const handle)
int FieldExport_CoordinateVariable(const int handle, const char *variableName, const int variableNumber, int coordinateSystemType, const int componentCount)
#define PART_DERIV_S2_S3_S4
#define FIELD_EXPORT_ERROR_BAD_HANDLE
int FieldExport_DerivativeIndices(const int handle, const int componentNumber, const int fieldType, const int variableType, const int numberOfDerivatives, const int *const derivatives, const int valueIndex)
static int FieldExport_File_ElementIndex(FileSession *session, const int dimensionCount, const int elementIndex)
#define BASIS_QUADRATIC1_HERMITE_INTERPOLATION
int FieldExport_CoordinateDerivativeIndices(const int handle, const int componentNumber, const int coordinateSystemType, const int numberOfDerivatives, const int *const derivatives, const int valueIndex)
static int FieldExport_FieldDerivateLabels(FileSession *session, const int numberOfDerivatives, const int *const derivatives)
struct _SessionListEntry * next
static int FieldExport_File_ElementGridSize(FileSession *const session, const int interpType, const int numberOfXi, const int *const numberGauss)
#define FIELD_EXPORT_ERROR_UNKNOWN_INTERPOLATION
static SessionListEntry * FieldExport_GetSession(const int handle)
#define BASIS_LAGRANGE_HERMITE_TP_TYPE
int FieldExport_NodeScaleIndexes(const int handle, const int nodeCount, const int *const derivativeCount, const int *const elementDerivatives, const int *const nodeIndexes, const int *const scaleIndexes)
static int FieldExport_File_InterpolationHeader(FileSession *const session, const int labelType, const int numberOfXi, const int *const interpolationXi)
int FieldExport_FieldCount(const int handle, const int fieldCount)
static int FieldExport_File_NodeScaleIndexes(FileSession *const session, const int nodeCount, const int *const derivativeCount, const int *const elementDerivatives, const int *const nodeIndexes, const int *const scaleIndexes)
int FieldExport_ElementNodeScales(const int handle, const int isFirstSet, const int scaleCount, const double *const scales)
static int FieldExport_File_InterpolationHeaderScale(FileSession *const session, const int numberOfXi, const int *const interpolationXi, const int numberOfScaleFactors)
#define BASIS_QUADRATIC2_HERMITE_INTERPOLATION
int FieldExport_ElementIndex(const int handle, const int dimensionCount, const int index)
int FieldExport_Component(const int handle, const int componentNumber, const int interpType, const int numberOfXi, const int *const interpolationXi)
int FieldExport_EndComponent(const int handle)
int FieldExport_MeshDimensions(const int handle, const int dimensions, const int basisType)
#define FIELD_GENERAL_TYPE
static int FieldExport_File_NodeCount(FileSession *const session, const int nodeCount)
#define FIELD_MATERIAL_TYPE
int FieldExport_ScaleFactors(const int handle, const int numberOfXi, const int *const interpolationXi, const int numberOfScaleFactors)
#define FIELD_V_VARIABLE_TYPE
static int FieldExport_FPrintf(FileSession *const session, const char *format,...)
int FieldExport_CloseSession(const int handle)
#define FIELD_U_VARIABLE_TYPE
static int FieldExport_File_DerivativeIndices(FileSession *session, const int componentNumber, const int fieldType, const int variableType, const int numberOfDerivatives, const int *const derivatives, const int valueIndex)
#define PART_DERIV_S1_S2_S4
#define FIELD_EXPORT_ERROR_UNKNOWN_LABEL_TYPE
int FieldExport_NodeCount(const int handle, const int nodeCount)
#define FIELD_IO_INTERPOLATION_HEADER_NODAL
int FieldExport_Group(const int handle, const char *const label)
static char * FieldExport_GetVariableLabel(const int fieldType, const int variableType)
static int FieldExport_File_CoordinateVariable(FileSession *const session, const char *variableName, const int variableIndex, int coordinateSystemType, const int componentCount)
#define BASIS_LINEAR_LAGRANGE_INTERPOLATION
#define COORDINATE_RECTANGULAR_CARTESIAN_TYPE
#define PART_DERIV_S1_S3_S4
#define FIELD_DEL2UDELT2_VARIABLE_TYPE
#define EXPORT_TYPE_CLOSED
#define PART_DERIV_S1_S2_S3_S4