You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/nmNum/nmCalculation/nmPebiStaticPropertyCalcula...

54 lines
1.7 KiB
C

#ifndef NMPEBISTATICPROPERTYCALCULATOR_H
#define NMPEBISTATICPROPERTYCALCULATOR_H
#include "nmCalculation_global.h"
#include "nmPebiStaticPropertyValues.h"
#include "nmPropertyInterpolationData.h"
#include <QAtomicInt>
#include <QPointF>
#include <QString>
#include <QVector>
enum nmPebiStaticPropertyCalculationStatus
{
NM_PebiStaticPropertyCalculation_Succeeded = 0,
NM_PebiStaticPropertyCalculation_Cancelled,
NM_PebiStaticPropertyCalculation_Failed
};
/** @brief 一次静态属性计算独占的不可变值输入。 */
struct NMCALCULATION_EXPORT nmPebiStaticPropertyCalculationInput
{
nmPebiStaticPropertyCalculationInput();
bool m_bCaptured; ///< 全部字段已经在 DataManager 所属线程完成冻结。
double m_dReferencePermeabilityMilliDarcy;
double m_dReferencePorosity;
double m_dReferenceThicknessMeters;
QVector<nmPropertyInterpolationDataSet> m_vecDataSets;
QString m_sLicensePath;
};
/**
* @brief 计算按原始 PEBI 求解单元顺序排列的 k/phi/h 静态属性。
*
* 服务只解释旧插值键 k、phi、h,不读取 DataManager、DLL 网格结构、VTK
* 或界面对象。失败和取消都不会向调用方提交部分数组。
*/
class NMCALCULATION_EXPORT nmPebiStaticPropertyCalculator
{
public:
static nmPebiStaticPropertyCalculationStatus calculate(
const QVector<QPointF>& vecOriginalCellPropertyLocations,
const nmPebiStaticPropertyCalculationInput& oInput,
nmPebiStaticPropertyValues& oOutput,
QString* pErrorMessage = NULL,
const QAtomicInt* pCancelRequested = NULL);
private:
nmPebiStaticPropertyCalculator();
};
#endif // NMPEBISTATICPROPERTYCALCULATOR_H