DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 Ndbpp
 CcallCounterGeneric class that wraps and counts calls of an arbitrary callback
 CCellCell concept is at the heart of the finite volume discretization. Usage: Reconstruction procedure based on MUSCL (UL,UR at each face) MusclReconstruction w_muscl(); w_muscl.reconstr(GlobalDisretization aGDiscr); // based on cell face global Id retrieve a cell to perform some operation std::map<unsigned shortglobal cell face Id,fluxpairFL,FR> w_fluxFace; list<cell> w_listOfCell; for(Cell w_cell : w_listOfCell) { Create a flux algorithm FluxAlgorithm w_fluxAlgo;
 CcellFaceCell face in the finite volume discretization Usage: caculFF(const cellFace& aFace) compute the numerical flux with Godunov-type scheme for example F(UL,UR) with Approximate Riemann Solver (discontinuity or shock represented by cell face)
 CcellFaceFluxFace flux variables at cell face (aggregate). Physical flux is used to compute the face flux ..
 CDamBreakProblemThe DAM-BREAK Problem class is a model of a well-posed problem
 CDamBreakWaveSimulatorAbstract class that serve as base class intending to implement dam break wave simulator
 CEMcNeilPhysBCPhysical boundary (characteristic equation solved)
 CFileDataStoreSpecify the DataStore file (save simulation results)
 CFiniteDifferenceModel"Model of Explicit scheme with time integration algorithm. Finite difference model a numerical representation of the math equations
 CFiniteVolumeDiscretizationGlobal discretized domain is defined as a set of all nodes and all elements. PHYSICAL ENTITIES include nodes and elements Node <-— Cell; i.e., element depends on node Omega = { all Node, all Cell }; global discretized domain is defined as a set of all nodes and all elements
 CFirstDerivativeCompute first derivative at second-order (finite difference)
 CFluxAlgorithmAbstract base class for numerical flux algorithm
 CFluxTensorFlux tensor field (aggregate initialization)
 CFluxTensorMapMap cell face and flux values
 CGammaBoundary condition
 CGodunovTypeSchemeAbstract base class for Godunov-type scheme (Model of). This is a model of an explicit scheme U_i = U_i - lambda*{F (UL_i+1/2,UR_i+1/2) - F(UL_i-1/2, UR_i-1/2) } Numerical representation of the mathematical model equivalent of conservation system law ()
 CHLLFlux1D"Model of" F_j +/- 1/2 numerical scheme at the cell interface. This class represents the HLL (Harten-Lax-Leer) solving algorithm (based on Riemann approximate solver)
 CHLLFluxAlgorithmNumerical flux algorithm based on HLL (Harten-Lax_Levy)
 CHLLParameterStructAlgorithm parameters HLL Algorithm
 CHLLPhysicalFlux
 CHLLSolver1DRiemann solver that belongs to Approximate Riemann solver. Solve the Riemann problem at cell Face. Riemann problem u want to set which is made of discontinuity and state vector (left/right) Shall return a map with key = cellFaceID and value is flux face (FF1,FF2)
 CisHomogeneousCheck if types are identical using fold expression
 CListSectionsFlowList of cross-section flow (itereable)
 CManningFormulaManning formula (friction law) Sf = g*n1*n1*V1*::fabs(V1)/A*A::pow(R1, 4./3.);
 CMinMod19Minmod limiter function for slope limiting gradient evaluation
 CMUSCLReconstr
 CNodalTplImplementation for nodal variable concept used in our application (use of variadic template)
 CNujicFluxAlgorithmNumerical flux algorithm based on Nujic (1995) paper. ENO type scheme (Roe simplified version)
 CNujicIntegratorBelongs two-step integrator Runge-Kutta family
 CNumericalMethodMapping between continuum and discrete domain. Transformation of the differential or integral equations to discrete algebraic equations involving the values of the unknowns at the mesh points. The basis of all numerical methods consists of this transformation of the physical euations into an algebraic, linear or non-linear, systems of equations
 CODESolver1DBase class ODE Solver (under construction)
 COmegaGlobal Domain (part of global discretization) list of elements and geomeric nodes used by numerical method
 CPhysicalBoundaryCndPhysical boundary condition (computational domain) based on characteristic equation ..
 CPhysicalMeasurementMeasure taken on the physical system (defines the required method for the Measurement bean). Still under development, physical state variables are the only measured quantities relevant for this simulation. we may be interested by energy slope, ... any other physics qty
 CPhysicalSystemPhysical system made of physical objects under study and described by the state variables. DamBreak physical system, physical objects are cross-sectional flow. Dynamic equations that describe the movement of the flow of water under gravity law, pressure and friction are described by the St-Venant set of equations. In conservative form mass and momentum are the quantity conserved across each section (state variables)
 CPtr2FLegacyFluxAlgorithmNumerical Face Flux Algorithm (Legacy code support Pointer-2-Function)
 CRhsHLLFluxSrcPhysics algorithm based on Nujic paper (1995), but use HLL (Harten-Lax-van Leer) for convective flux solver (E. McNeil)
 CRhsPtr2FuncFluxWrappper class to support legacy code (C-functions)
 CRiemannProblemSystem of conservation Law with an initial discontinuity in it. Two states connected by a left and right state which can be represented constant piecewise function over each cell where shock propagate (a cell face define a discontinuity)
 CRk2HllSchemeAlgorithm based on the Godunov-type Scheme (explicit). We use a two-time steps integrator belongs to Runge-Kutta family and the HLL algorithm for convective flux evaluation. Order is achieved by MUSCL reconstruction procedure to extrapolate state variables at cell face j+1/2 (piecewise-constant state variable on each cell). This algorithm solve at cell-face a Riemann problem (system of conservation law coupled with 2-state tied by a discontinuity define a Riemann Problem)
 CSectionFlowCross-sectional flow (2-dimensional)
 CSemiDiscreteMethodMOL (Method-of-lines) spatial and time discretization done separetly. Model of the following equation (ODE) U_t = L_delta(U;t);
where L_delta (spatial operator) contains derivative of some variable and describe the evolution of this variable (time evolution). ODE: Ordinary Differential Equation
 CSemiDiscreteSchemeUnder construction ..
 CSrcNumericalTreatmentBasic algorithm to evaluate source terms (bed slope and energy slope) The Manning formula can be read as follow:
 CSrcTreatmentS2Implementation using a different formula for Manning coefficient
 CSweLDeltaOperatorTo be completed ... see Swe_LDeltaOperator as base implementation U1n12 = w_LdeltaOp->applyTo(arr U1. arr U2).massEq(); // n+1/2 time step U1n12 = w_LdeltaOp->applyTo(arr U1. arr U2).momentumEq(); // ditto
 CSweRhsAlgorithmAbstract class. "Model" of the right-hand-side terms discretization. Hold discretization scheme or algorithm to be applied on each of them
 CSweRhsDataAggregate (must support operator[])
 CSweRhsDataPInherited aggregate (extended), add pressure term data
 CUhContainer of nodal variables
 CVS19WaveSimulatorDamBreak simulator base class (Wave Simulator)
 NSfx
 CDamBreakDataHold data for validation. Two type: EMcneil, Hudson (DamBreak config)
 CDamBreakExSol
 CDamBreakInitialCndSole responsibility is to provide wave profile at initial start up based on DamBreakData
 CDbgLoggerHelper utility that save result to a file to be used for debugging and visualizing
 CEMcNeilBndCndCalculate the characteristic information to set boundary node values (A,Q,H)
 CExplicitOperatorSome prototype
 CFiniteDifferenceDerivativeFirst derivative at second and fourth order. provide a stencil concept to evaluate derivative without spurious oscillations (ENO: Essentially Non-Oscillatory
 CLDeltaOperatorResponsible to evaluate the spatial terms according to spatial discretization. The HOperator provides type and method to compute numerically the different terms of the right-hand-side of the equation. It also provide numerical container used for fast floating-point operation
 CLoggerClass to output a message log file. Singleton base class manage the creation/deletion of the logger. That the instance function returns a pointer to a static variable and thus is declared static. Only the class function Instance can call the constructor. Public access to the constructor is denied. The constructor, copy constructor and assignment operator are all private to ensure that the programmer using the singleton class can only create a single instance of the class using only the Instance() function. The life of the singleton instantiation is for the duration of the application
 CPhysicalAlgorithmAbstract class provide an interface with services to implement physical based algorithm to solve st-Venant equations in a conservative form (divergence). Numerical integrate the numerical model in time ... advance ... to be completed
 CPhysicalConfigureResponsible to set initial configuration of the physical system (e.g. initial condition)
 CPhysicalMeasurementPhysical measuremt taken on physical system (e.g. energy, friction, ...)
 CSectionGeometryHandler
 CSimulationBean that represents a simulation in the framework. Many of the attributes of the simulation bean are defined in the Simulation.properties file by the user of the framework. The Controller class uses the simulation bean to control the creation of the correct classes for the simulation
 CSimulationMgrGlobal instance of the simulation. Hold the different parameters of run (simulation parameters). Use the CRTP (Curious Recursive Template Pattern) known as static polymorphism)
 CStVenant1DShallow-water (one-dimension) is a system of conservation laws. Conserved quantities (state variables) are the mass and the momentum. It's the differential form of Newton law (f=ma) but for a mass of fluid in a movement under gravity. Forces that act on the mass of fluid are friction, gravity and pressure
 CStVenant1DTermsOne-dimensional St-Venant equation spatial terms
 NTestvs19
 CBaseRhsPhysicsAlgorithmBase RHS terms algoritm (support legacy code)
 CBaseTypesPhysicsAlgorithmFirst implementation from the re-factoring VS15 to VS19 (C++20)
 CDamBreakMeasureAQHPhysical measure taken in the Physical system We are still experimenting we our new API that is under construction
 CDamBreakSetupSet up initial condition for DamBreak problem
 CDamBreakSysConfigureClass that profide a method to configure physical system. The configuration of a physical system is done before any operations or measurements are performed on the physical system. The class that will be used by the simulation should be defined in the Simulation.properties file in the following manner: PhysicalConfigurationClass=InitialSetup
 CDamBreakSysMeasurementThis interface defines the required method for the Measurement bean. The user will define the necessary get and set methods for the bean on the quantities that are being measured as in the following example: ... public void setTotalEnergy(double E) { this.E = E; }
 CDamBreakSystemPhysical system under study (physical object)
 CDataStoreFactoryData Store factory method
 CEmcilAlgorithmAlgorithm that take care of the physics that we want to simulate. For example, Nujic in his article treat numerically pressure, source and flux depending on the physics
 CEMcNeilAlgorithmConcept of physical algoritm using components (set numerical method). This allow to program complex algorithms quickly by components. In project require to prototype according to physics assumptions. Each of these components are programmed or support a wide (large) implementation of discretization. For example, Nujic 1995 propose to use ENO techniques to compute flux and some source special treatment to take account ... Model of an explicit conservative scheme with source terms (energy and bed slope). Switch components to re-configure the algorithm (Nujic flux) but E. McNeil use HLL. This kind of flexibility must be supported particularly in industrial projects since ... to be completed
 CFileDataStoreFile based implementation of the DataStore interface. This class makes use of the toString() method defined in the PhysicalMeasurement interface
 CFileFinalReportDefines a simple way of reporting final statistics or calculations that occured in the simulation. To define the usage of a FinalReport implement the following in the Simulation.properties file in the following manner: FinalReportClass=Report DoFinalReport=true
 CListSectionsFlowList of physical objects under study
 CListSectionsIteratorList iterator on list of sections flow
 CNujic2StepsIntegratorNumerical integration by two-steps Rungde-Kutta (second-order)
 CNujicPhysicsAlgorithmNujic (1995) physics algorithm with assumptions ... . source treatment (slope bottom term) based on physics ... to be completed see prototype VS2015 for an imp
 CNujicSrcTermAlgorithm"Model of" function object (called functor). Calculate the "S0" .... slope term
 CNumethod_fThis is a prototype!! just experimenting some implementation
 CProtoPhysicalAlgorithmConcept of physical algoritm using components (set numerical method). This allow to program complex algorithms quickly by components. In project require to prototype according to physics assumptions. Each of these components are programmed or support a wide (large) implementation of discretization. For example, Nujic 1995 propose to use ENO techniques to compute flux and some source special treatment to take account ... Model of an explicit conservative scheme with source terms (energy and bed slope). Switch components to re-configure the algorithm (Nujic flux) but E. McNeil use HLL. This kind of flexibility must be supported particularly in industrial projects since ... to be completed
 CRetRhsTypeWrapper data type used as RHS (right-hand-side) return structure
 CRhsType
 CSbSfTermsEvaluationWrapper of legacy code. Usage: SbSfTermsEvaluation w_S0Sf{listSections,bc1,bc2}; auto w_SfS0 = w_S0Sf.TraitementTermeS2(aField1,aField2); auto& w_rhs = m_rhsAlgo.getRHS(); w_rhs.m_swerhs.S = std::move(w_SfS0);
 CValidateAlgoImplement the physical algorithm that we use to validate our prototype within the Dam-Break simulation. Solve the ODE system by an explicit model. Spatial operator (right-hand-side) U_t = L_x of the St-Venant equations
 CWave1DSimulatorWave simulator (simulate dam-break wave propagation) implementation
 CWaveSimulatorWave simulator (simulate dam-break wave propagation)
 CBaseNumericalTreatmemtBase implementation according to Eric McNeil Eric McNeil original code use an approach based on Nujic but implement the numerical flux with a HLL algorithm. Re-use Nujic implementation of the source term and pressure terms, but provide also
 CDamBreakSimBase class for simulating the Dam Break Problem