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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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