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.
AppFlow/FITK_Interface/FITKInterfaceFlowOF/FITKAbstractOFSolver.h

217 lines
6.9 KiB
C

/**********************************************************************
* @file FITKAbstractOFSolver.h
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*********************************************************************/
#ifndef _FITK_OF_ABSTRACT_SOLVER__H___
#define _FITK_OF_ABSTRACT_SOLVER__H___
#include "FITKInterfaceFlowOFAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h"
#include "FITKOFEnum.hpp"
namespace Interface
{
class FITKOFTransportProp;
class FITKOFDiscretization;
class FITKOFSolution;
class FITKOFBoundary;
class FITKOFInitialConditions;
class FITKOFRunControl;
class FITKOFOperatingConditions;
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
class FITKInterfaceFlowOFAPI FITKAbstractOFSolver : public Core::FITKAbstractNDataObject
{
public:
explicit FITKAbstractOFSolver();
virtual ~FITKAbstractOFSolver();
/**
* @brief
* @return QString
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-06
*/
virtual QString getSolverCommand() = 0;
/**
* @brief
* @return bool
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
bool turbEnabled() const;
/**
* @brief
* @return FITKOFSolverTypeEnum::FITKOFSolverType
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
virtual FITKOFSolverTypeEnum::FITKOFSolverType getSolverType() = 0;
/**
* @brief
* @return FITKOFDiscretization *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
FITKOFDiscretization* getDiscretization();
/**
* @brief
* @return FITKOFTransportProp *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
FITKOFTransportProp* getTransportProp();
/**
* @brief solution
* @return FITKOFSolution *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
FITKOFSolution* getSolution();
/**
* @brief Initial Conditions
* @return FITKOFInitialConditions *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-23
*/
FITKOFInitialConditions* getInitialConditions();
/**
* @brief
* @param[i] bType
* @return FITKOFBoundary *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-26
*/
FITKOFBoundary* getBoundary(FITKOFSolverTypeEnum::FITKOFBoundaryType bType);
/**
* @brief
* @return FITKOFRunControl *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-31
*/
FITKOFRunControl* getRunControl();
/**
* @brief
* @return FITKOFOperatingConditions *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-04
*/
FITKOFOperatingConditions* getOperatingConditions();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
virtual void init();
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
virtual void initTransportProp() = 0;
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
virtual void initDiscretization() = 0;
/**
* @brief solution
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolution() = 0;
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-23
*/
virtual void initBoundarys() = 0;
/**
* @brief Initial Conditions
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-23
*/
virtual void initInitialConditions() = 0;
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-31
*/
virtual void initRunControl() = 0;
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-04
*/
virtual void initOperatingConditions() = 0;
protected:
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
bool _enableTurb{false};
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
FITKOFTransportProp* _transportProp{};
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-21
*/
FITKOFDiscretization* _discretization{};
/**
* @brief solution
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
FITKOFSolution* _solution{};
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-26
*/
FITKOFInitialConditions* _initialCond{};
/**
* @brief InitialConditions
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-23
*/
QList<FITKOFBoundary*> _boundaryInfos{};
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-31
*/
FITKOFRunControl* _runControl{};
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-04
*/
FITKOFOperatingConditions* _operatingCond{};
};
}
#endif