|
| using | t_base = FiniteVolume |
| |
| using | TFTrans = std::function< void(Eigen::Ref< MatrixXR >, Geom::t_index)> |
| |
| using | tFGetBoundaryWeight = std::function< real(Geom::t_index, int)> |
| |
| template<int nVarsFixed = 5> |
| using | TFBoundary = std::function< Eigen::Vector< real, nVarsFixed >(const Eigen::Vector< real, nVarsFixed > &, const Eigen::Vector< real, nVarsFixed > &, index, index, int, const Geom::tPoint &, const Geom::tPoint &, Geom::t_index fType)> |
| |
| template<int nVarsFixed = 5> |
| using | TFBoundaryDiff = std::function< Eigen::Vector< real, nVarsFixed >(const Eigen::Vector< real, nVarsFixed > &, const Eigen::Vector< real, nVarsFixed > &, const Eigen::Vector< real, nVarsFixed > &, index, index, int, const Geom::tPoint &, const Geom::tPoint &, Geom::t_index fType)> |
| |
| template<int nVarsFixed> |
| using | TFPost = std::function< void(Eigen::Matrix< real, 1, nVarsFixed > &)> |
| |
| template<int nVarsFixed> |
| using | tLimitBatch = Eigen::Matrix< real, -1, nVarsFixed, 0, CFV::VariationalReconstruction< dim >::maxRecDOFBatch > |
| |
| template<int nVarsFixed> |
| using | tFMEig = std::function< tLimitBatch< nVarsFixed >(const Eigen::Vector< real, nVarsFixed > &uL, const Eigen::Vector< real, nVarsFixed > &uR, const Geom::tPoint &uNorm, const Eigen::Ref< tLimitBatch< nVarsFixed > > &data)> |
| |
| template<DeviceBackend B> |
| using | t_deviceView = FiniteVolumeDeviceView< B > |
| |
|
| int | getDim () const |
| |
| const VRSettings & | getSettings () const |
| |
| void | parseSettings (const VRSettings &s) |
| |
| void | parseSettings (VRSettings::json &j) |
| | Backward-compatible overload accepting JSON (used by Python bindings).
|
| |
| | VariationalReconstruction (MPIInfo nMpi, ssp< Geom::UnstructuredMesh > nMesh) |
| |
| void | SetPeriodicTransformations (const TFTrans &nFTransPeriodic, const TFTrans &nFTransPeriodicBack) |
| |
| template<size_t pDim> |
| void | SetPeriodicTransformations (std::array< int, pDim > Seq123) |
| |
| void | SetPeriodicTransformations () |
| |
| template<typename... Ts> |
| void | ApplyPeriodicTransform (int if2c, Geom::t_index faceID, Ts &...data) const |
| | Applies the appropriate periodic transformation to one or more data matrices.
|
| |
| void | ConstructMetrics () |
| |
| void | ConstructBaseAndWeight (const tFGetBoundaryWeight &id2faceDircWeight=[](Geom::t_index id, int iOrder) { return 1.0;}) |
| |
| void | ConstructRecCoeff () |
| |
| auto | GetCellRecMatAInv (index iCell) |
| |
| auto | GetCellRecMatAInvB (index iCell, int ic2f) |
| |
| auto & | get_matrixAAInvB () |
| |
| auto & | get_vectorAInvB () |
| |
| template<class TOut > |
| void | FDiffBaseValue (TOut &DiBj, const Geom::tPoint &pPhy, index iCell, index iFace, int iG, int flag=0) |
| | flag = 0 means use moment data, or else use no moment (as 0) pPhy must be relative to cell if iFace < 0, means anywhere if iFace > 0, iG == -1, means center; iG < -1, then anywhere
|
| |
| template<class TList > |
| MatrixXR | GetIntPointDiffBaseValue (index iCell, index iFace, rowsize if2c, int iG, TList &&diffList=EigenAll, uint8_t maxDiff=UINT8_MAX) |
| | if if2c < 0, then calculated, if maxDiff == 255, then seen as all diffs if iFace < 0, then seen as cell int points; if iG < 1, then seen as center
|
| |
| auto | GetMatrixSecondary (index iCell, index iFace, index if2c) |
| | if if2c < 0, then calculated with iCell hen seen as all diffs
|
| |
| template<class TDiffIDerived , class TDiffJDerived > |
| auto | FFaceFunctional (const Eigen::MatrixBase< TDiffIDerived > &DiffI, const Eigen::MatrixBase< TDiffJDerived > &DiffJ, index iFace, index iCellL, index iCellR) |
| |
| real | GetGreenGauss1WeightOnCell (index iCell) |
| |
| real | GetCellAR (index iCell) |
| |
| template<int nVarsFixed = 1> |
| void | MatrixAMult (tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRec1) |
| |
| template<int nVarsFixed = 1> |
| auto | DownCastURecOrder (int curOrder, index iCell, tURec< nVarsFixed > &uRec, int downCastMethod) |
| |
| template<int nVarsFixed> |
| void | BuildURec (tURec< nVarsFixed > &u, int nVars, bool buildSon=true, bool buildTrans=true) |
| |
| template<int nVarsFixed> |
| void | BuildUGrad (tUGrad< nVarsFixed, dim > &u, int nVars, bool buildSon=true, bool buildTrans=true) |
| |
| void | BuildScalar (tScalarPair &u, bool buildSon=true, bool buildTrans=true) |
| |
| template<int nVarsFixed = 1> |
| void | BuildUDofNode (tUDof< nVarsFixed > &u, int nVars, bool buildSon=true, bool buildTrans=true) |
| |
| template<int nVarsFixed = 5> |
| void | DoReconstruction2ndGrad (tUGrad< nVarsFixed, dim > &uRec, tUDof< nVarsFixed > &u, const TFBoundary< nVarsFixed > &FBoundary, int method) |
| | fallback reconstruction method, explicit 2nd order FV reconstruction
|
| |
| template<int nVarsFixed = 5> |
| void | DoReconstruction2nd (tURec< nVarsFixed > &uRec, tUDof< nVarsFixed > &u, const TFBoundary< nVarsFixed > &FBoundary, int method, const std::vector< int > &mask) |
| | fallback reconstruction method, explicit 2nd order FV reconstruction
|
| |
| template<int nVarsFixed = 5> |
| void | DoReconstructionIter (tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecNew, tUDof< nVarsFixed > &u, const TFBoundary< nVarsFixed > &FBoundary, bool putIntoNew=false, bool recordInc=false, bool uRecIsZero=false) |
| | iterative variational reconstruction method
|
| |
| template<int nVarsFixed = 5> |
| void | DoReconstructionIterDiff (tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecDiff, tURec< nVarsFixed > &uRecNew, tUDof< nVarsFixed > &u, const TFBoundaryDiff< nVarsFixed > &FBoundaryDiff) |
| | puts into uRecNew with Mat * uRecDiff; uses the Block-jacobi preconditioned reconstruction system as Mat.
|
| |
| template<int nVarsFixed = 5> |
| void | DoReconstructionIterSOR (tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecInc, tURec< nVarsFixed > &uRecNew, tUDof< nVarsFixed > &u, const TFBoundaryDiff< nVarsFixed > &FBoundaryDiff, bool reverse=false) |
| | do a SOR iteration from uRecNew, with uRecInc as the RHSterm of Block-Jacobi preconditioned system
|
| |
| template<int nVarsFixed, int nVarsSee = 2> |
| void | DoCalculateSmoothIndicator (tScalarPair &si, tURec< nVarsFixed > &uRec, tUDof< nVarsFixed > &u, const std::array< int, nVarsSee > &varsSee) |
| |
| template<int nVarsFixed> |
| void | DoCalculateSmoothIndicatorV1 (tScalarPair &si, tURec< nVarsFixed > &uRec, tUDof< nVarsFixed > &u, const Eigen::Vector< real, nVarsFixed > &varsSee, const TFPost< nVarsFixed > &FPost) |
| |
| template<int nVarsFixed> |
| void | DoLimiterWBAP_C (tUDof< nVarsFixed > &u, tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecNew, tURec< nVarsFixed > &uRecBuf, tScalarPair &si, bool ifAll, const tFMEig< nVarsFixed > &FM, const tFMEig< nVarsFixed > &FMI, bool putIntoNew=false) |
| | FM(uLeft,uRight,norm) gives vsize * vsize mat of Left Eigen Vectors.
|
| |
| template<int nVarsFixed> |
| void | DoLimiterWBAP_3 (tUDof< nVarsFixed > &u, tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecNew, tURec< nVarsFixed > &uRecBuf, tScalarPair &si, bool ifAll, const tFMEig< nVarsFixed > &FM, const tFMEig< nVarsFixed > &FMI, bool putIntoNew=false) |
| | FM(uLeft,uRight,norm) gives vsize * vsize mat of Left Eigen Vectors.
|
| |
| void | WriteSerializeRecMatrix (const Serializer::SerializerBaseSSP &serializerP) |
| |
| const FiniteVolumeSettings & | getSettings () const |
| |
| void | parseSettings (FiniteVolumeSettings::json &j) |
| |
| int | GetAxisSymmetric () const |
| |
| int | SetAxisSymmetric (int v) |
| |
| | FiniteVolume (MPIInfo nMpi, ssp< Geom::UnstructuredMesh > nMesh) |
| |
| int | getDim () const |
| |
| template<class TArrayPair , class... TOthers> |
| void | MakePairDefaultOnCell (TArrayPair &aPair, const std::string &name, TOthers... others) |
| | make pair with default MPI type, match cell layout
|
| |
| template<class TArrayPair , class... TOthers> |
| void | MakePairDefaultOnFace (TArrayPair &aPair, const std::string &name, TOthers... others) |
| | make pair with default MPI type, match face layout
|
| |
| void | SetCellAtrBasic () |
| |
| void | ConstructCellVolume () |
| |
| void | ConstructCellBary () |
| |
| void | ConstructCellCent () |
| |
| void | ConstructCellIntJacobiDet () |
| |
| void | ConstructCellIntPPhysics () |
| |
| void | ConstructCellAlignedHBox () |
| |
| void | ConstructCellMajorHBoxCoordInertia () |
| |
| void | SetFaceAtrBasic () |
| |
| void | ConstructFaceArea () |
| |
| void | ConstructFaceCent () |
| |
| void | ConstructFaceIntJacobiDet () |
| |
| void | ConstructFaceIntPPhysics () |
| |
| void | ConstructFaceUnitNorm () |
| |
| void | ConstructFaceMeanNorm () |
| |
| void | ConstructCellSmoothScale () |
| |
| template<int nVarsFixed = 1> |
| void | BuildUDof (tUDof< nVarsFixed > &u, int nVars, bool buildSon=true, bool buildTrans=true, Geom::MeshLoc varloc=Geom::MeshLoc::Cell) |
| |
| template<int nVarsFixed, int dim> |
| void | BuildUGradD (tUGrad< nVarsFixed, dim > &u, int nVars, bool buildSon=true, bool buildTrans=true, Geom::MeshLoc varloc=Geom::MeshLoc::Cell) |
| |
| RecAtr & | GetCellAtr (index iCell) |
| |
| int | GetCellOrder (index iCell) |
| |
| RecAtr & | GetFaceAtr (index iFace) |
| |
| int | maxNDOF () |
| |
| real | GetCellVol (index iCell) const |
| |
| real | GetFaceArea (index iFace) const |
| |
| real | GetCellSmoothScaleRatio (index iCell) const |
| |
| real | GetGlobalVol () const |
| |
| real | GetCellJacobiDet (index iCell, rowsize iG) |
| |
| real | GetFaceJacobiDet (index iFace, rowsize iG) |
| |
| Geom::Elem::Quadrature | GetFaceQuad (index iFace) const |
| |
| Geom::Elem::Quadrature | GetFaceQuadO1 (index iFace) const |
| |
| real | GetFaceParamArea (index iFace) const |
| |
| Geom::Elem::Quadrature | GetCellQuad (index iCell) const |
| |
| Geom::Elem::Quadrature | GetCellQuadO1 (index iCell) const |
| |
| real | GetCellParamVol (index iCell) const |
| |
| Geom::tPoint | GetCellBary (index iCell) |
| |
| bool | CellIsFaceBack (index iCell, index iFace) const |
| |
| index | CellFaceOther (index iCell, index iFace) const |
| |
| Geom::tPoint | GetFaceNorm (index iFace, int iG) const |
| |
| Geom::tPoint | GetFaceNormFromCell (index iFace, index iCell, rowsize if2c, int iG) |
| |
| Geom::tPoint | GetFaceQuadraturePPhys (index iFace, int iG) |
| |
| Geom::tPoint | GetFaceQuadraturePPhysFromCell (index iFace, index iCell, rowsize if2c, int iG) |
| |
| Geom::tPoint | GetFacePointFromCell (index iFace, index iCell, rowsize if2c, const Geom::tPoint &pnt) |
| |
| Geom::tPoint | GetOtherCellBaryFromCell (index iCell, index iCellOther, index iFace) |
| |
| Geom::tPoint | GetOtherCellPointFromCell (index iCell, index iCellOther, index iFace, const Geom::tPoint &pnt) |
| |
| Geom::tGPoint | GetOtherCellInertiaFromCell (index iCell, index iCellOther, index iFace) |
| |
| Geom::tPoint | GetCellQuadraturePPhys (index iCell, int iG) |
| |
| real | GetCellMaxLenScale (index iCell) |
| |
| real | GetCellNodeMinLenScale (index iCell) |
| |
| index | getArrayBytes () |
| |
| template<DeviceBackend B> |
| t_deviceView< B > | deviceView () |
| |
| void | to_device (DeviceBackend B) |
| | Mirror every registered ArrayPair to the given device backend.
|
| |
| void | to_host () |
| | Pull every registered pair back to host memory.
|
| |
| DeviceBackend | device () |
| | Consistent device backend across all registered pairs.
|
| |
| index | getDeviceArrayBytes () |
| | Total footprint of every registered father+son pair in bytes.
|
| |
template<
int dim = 2>
class DNDS::CFV::VariationalReconstruction< dim >
The VR class that provides any information needed in high-order CFV.
VR holds a primitive mesh and any needed derived information about geometry and general reconstruction coefficients
The (differentiable) input of VR is merely: geometry (mesh), and the weight inputs if using distributed weight; output are all values derived using construct* method
Definition at line 109 of file VariationalReconstruction.hpp.