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/FITKOFSolutionSolver.h

165 lines
4.6 KiB
C

/**********************************************************************
* @file FITKOFSolutionSolver.h
* @brief solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*********************************************************************/
#ifndef _FITK_OF_SOLUTION_SOLVER__H___
#define _FITK_OF_SOLUTION_SOLVER__H___
#include "FITKInterfaceFlowOFAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractNDataObject.h"
namespace Core
{
class FITKParameter;
}
namespace Interface
{
/**
* @brief solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFAbsSolutionSolver : public Core::FITKAbstractNDataObject
{
public:
explicit FITKOFAbsSolutionSolver();
virtual ~FITKOFAbsSolutionSolver();
/**
* @brief
* @return Core::FITKParameter *
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
Core::FITKParameter* getSolverSolutionPara();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() = 0;
protected:
/**
* @brief
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
Core::FITKParameter* _solverSolutionParams{};
};
/**
* @brief GAMG solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFSolutionSolverGAMG : public FITKOFAbsSolutionSolver
{
public:
explicit FITKOFSolutionSolverGAMG();
virtual ~FITKOFSolutionSolverGAMG();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() override;
};
/**
* @brief PCG solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFSolutionSolverPCG : public FITKOFAbsSolutionSolver
{
public:
explicit FITKOFSolutionSolverPCG();
virtual ~FITKOFSolutionSolverPCG();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() override;
};
/**
* @brief Smooth Solver solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFSolutionSolverSmoothSolver : public FITKOFAbsSolutionSolver
{
public:
explicit FITKOFSolutionSolverSmoothSolver();
virtual ~FITKOFSolutionSolverSmoothSolver();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() override;
};
/**
* @brief PBiCG Stabilized solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFSolutionSolverPBiCGStabilized : public FITKOFAbsSolutionSolver
{
public:
explicit FITKOFSolutionSolverPBiCGStabilized();
virtual ~FITKOFSolutionSolverPBiCGStabilized();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() override;
};
/**
* @brief PBiCG solution Solver
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
class FITKInterfaceFlowOFAPI FITKOFSolutionSolverPBiCG : public FITKOFAbsSolutionSolver
{
public:
explicit FITKOFSolutionSolverPBiCG();
virtual ~FITKOFSolutionSolverPBiCG();
protected:
/**
* @brief
* @return void
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-08-22
*/
virtual void initSolverSolutionParam() override;
};
}
#endif