CG  Version 25
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Cgsm Class Reference

#include <Cgsm.h>

Inheritance diagram for Cgsm:
Inheritance graph
[legend]
Collaboration diagram for Cgsm:
Collaboration graph
[legend]

Public Types

enum  ElementTypeEnum {
  structuredElements, triangles, quadrilaterals, hexahedra,
  defaultUnstructured
}
 
enum  InitialConditionEnum {
  defaultInitialCondition, planeWaveInitialCondition, gaussianPlaneWave, gaussianPulseInitialCondition,
  squareEigenfunctionInitialCondition, annulusEigenfunctionInitialCondition, zeroInitialCondition, planeWaveScatteredFieldInitialCondition,
  planeMaterialInterfaceInitialCondition, gaussianIntegralInitialCondition, twilightZoneInitialCondition, parabolicInitialCondition,
  specialInitialCondition, hempInitialCondition, knownSolutionInitialCondition, userDefinedInitialCondition
}
 
enum  ForcingEnum {
  noForcing, gaussianSource, twilightZoneForcing, planeWaveBoundaryForcing,
  gaussianChargeSource, userDefinedForcingOption
}
 
enum  KnownSolutionEnum { noKnownSolution, twilightZoneKnownSolution, squareEigenfunctionKnownSolution, annulusEigenfunctionKnownSolution }
 
enum  EvaluationOptionsEnum { computeInitialConditions, computeErrors }
 
enum  { maxNumberOfGaussianPulses =20 }
 
enum  { maxNumberOfGaussianChargeSources =10 }
 
- Public Types inherited from DomainSolver
enum  { defaultValue =-1234567 }
 
enum  ForcingTypeEnum { computeForcing, computeTimeDerivativeOfForcing }
 
enum  BoundaryConditionPredictorEnum { predictPressure, predictPressureAndVelocity }
 
enum  InterfaceOptionsEnum { getInterfaceRightHandSide, setInterfaceRightHandSide }
 
enum  Dimensions { maximumNumberOfGridFunctionsToUse =4, maximumNumberOfExtraFunctionsToUse =4 }
 
enum  ChangesEnum {
  gridWasAdded =1, gridWasChanged, gridWasRemoved, refinementWasAdded,
  refinementWasRemoved
}
 

Public Member Functions

 Cgsm (CompositeGrid &cg, GenericGraphicsInterface *ps=NULL, Ogshow *show=NULL, const int &plotOption=1)
 Constructor for the Cgsm class.
 
 ~Cgsm ()
 
int addDissipation (int current, real t, real dt, realMappedGridFunction *fields, const Range &C)
 Add in an artificial dissipation.
 
void advance (int current, real t, real dt)
 Advance one time-step. This function is used by the multi-physics solver Cgmp.
 
void advanceFOS (int current, real t, real dt, RealCompositeGridFunction *ut=NULL, real tForce=0.)
 Advance the solution as a second-order system. This function will.
 
void advanceMethodOfLines (int current, real t, real dt)
 Advance one time-step using the method of lines.
 
void advanceSOS (int current, real t, real dt, RealCompositeGridFunction *ut=NULL, real tForce=0.)
 Advance the solution as a second-order system. This function will.
 
void applyBoundaryConditions (int option, real dt, int current, int prev)
 High-level apply boundary conditions routine.
 
virtual int applyBoundaryConditions (GridFunction &cgf, const int &option=-1, int grid_=-1, GridFunction *puOld=NULL, const real &dt=-1.)
 Here is apply BC function from the DomainSolver (used in adaptGrids)
 
int assignAnnulusEigenfunction (const int gfIndex, const EvaluationOptionsEnum evalOption)
 Assign the annulus eigenfunction initial conditions or evaluate the error.
 
void assignBoundaryConditions (int option, int grid, real t, real dt, realMappedGridFunction &u, realMappedGridFunction &uOld, int current)
 Apply boundary conditions.
 
void assignBoundaryConditionsFOS (int option, int grid, real t, real dt, realMappedGridFunction &u, realMappedGridFunction &uOld, int current)
 Apply boundary conditions for the First-Order-System.
 
void assignBoundaryConditionsSOS (int option, int grid, real t, real dt, realMappedGridFunction &u, realMappedGridFunction &uOld, int current)
 Apply boundary conditions for the second-order-system .
 
int assignGaussianPulseInitialConditions (int gfIndex)
 Assign the Gaussian Pulse initial conditions.
 
int assignHempInitialConditions (int gfIndex)
 Assign initial conditions for the Hemp solver.
 
virtual int assignInitialConditions (int gfIndex)
 Assign initial conditions.
 
void assignInterfaceBoundaryConditions (int current, real t, real dt)
 
int assignParabolicInitialConditions (int gfIndex)
 Assign "parabolic" initial conditions.
 
int assignSpecialInitialConditions (int gfIndex, const EvaluationOptionsEnum evalOption)
 Assign "special" initial conditions.
 
int assignTwilightZoneInitialConditions (int gfIndex)
 Assign twilight zone initial conditions.
 
int buildRunTimeDialog ()
 Build the run time dialog. This dialog appears while a Domain solver is time stepping.
 
int buildVariableDissipation ()
 
void checkArrays (const aString &label)
 
void checkDisplacementAndStress (const int current, real t)
 For the FOS, determine difference between the stress components s11c, .. and the stress computed from the displacement.
 
void computeDissipation (int current, real t, real dt)
 
void computeNumberOfStepsAndAdjustTheTimeStep (const real &t, const real &tFinal, const real &nextTimeToPlot, int &numberOfSubSteps, real &dtNew, const bool &adjustTimeStep=true)
 
virtual realCompositeGridFunction & getAugmentedSolution (GridFunction &gf0, realCompositeGridFunction &v)
 Interface to the base class function.
 
realCompositeGridFunction & getAugmentedSolution (int current, realCompositeGridFunction &v, const real t)
 Create a grid function that holds all the things we can plot.
 
bool getBoundsForPML (MappedGrid &mg, Index Iv[3], int extra=0)
 
virtual int getInterfaceDataOptions (GridFaceDescriptor &info, int &interfaceDataOptions) const
 Return the interface data required for a given type of interface.
 
void getLocalBoundsAndBoundaryConditions (const realMappedGridFunction &a, IntegerArray &gidLocal, IntegerArray &dimensionLocal, IntegerArray &bcLocal)
 
virtual void getUt (GridFunction &cgf, const real &t, RealCompositeGridFunction &ut, real tForce)
 : compute u.t or u.tt for a method of lines time-stepper
 
void getUtFOS (GridFunction &cgf, const real &t, RealCompositeGridFunction &ut, real tForce)
 Compute du/dt for the first-order-system.
 
void getUtSOS (GridFunction &cgf, const real &t, RealCompositeGridFunction &ut, real tForce)
 Compute u.tt for the second-order-system.
 
void getVelocityAndStress (const int current, real t, realCompositeGridFunction *pv=NULL, int vComponent=0, realCompositeGridFunction *ps=NULL, int sComponent=0, bool computeMaxNorms=true)
 Compute the velocity and stress by differencing the displacements.
 
int endTimeStep (real &t0, real &dt0, AdvanceOptions &advanceOptions)
 End an individual time step (a time sub-step function).
 
void getEnergy (int current, real t, real dt)
 
void getErrors (int current, real t, real dt, const aString &label=nullString)
 Determine the errors.
 
int getForcing (int current, int grid, realArray &u, real t, real dt, int option=0)
 
virtual int getInitialConditions (const aString &command=nullString, DialogData *interface=NULL, GUIState *guiState=NULL, DialogState *dialogState=NULL)
 Determine the type of initial conditions to assign.
 
void getMaxDivAndCurl (const int current, real t, realCompositeGridFunction *pu=NULL, int component=0, realCompositeGridFunction *pvor=NULL, int vorComponent=0, realCompositeGridFunction *pDensity=NULL, int rhoComponent=0, bool computeMaxNorms=true)
 
int getMethodName (aString &methodName)
 : Return the name used in plot titles and the show file titles.
 
virtual real getTimeStep (GridFunction &gf)
 
void initializeInterfaces ()
 
void initializeKnownSolution ()
 
int initializeRadiationBoundaryConditions ()
 
virtual int initializeTimeStepping (real &t0, real &dt0)
 Initialize the time stepping (a time sub-step function).
 
virtual int interfaceRightHandSide (InterfaceOptionsEnum option, int interfaceDataOptions, GridFaceDescriptor &info, GridFaceDescriptor &gfd, int gfIndex, real t)
 
int outputResults (int current, real t, real dt)
 
int outputResultsAfterEachTimeStep (int current, real t, real dt, int stepNumber)
 
int plot (int current, real t, real dt)
 
int printMemoryUsage (FILE *file=stdout)
 Output information about the memory usage.
 
virtual void printTimeStepInfo (const int &step, const real &t, const real &cpuTime)
 Print time-step information about the current solution in a nicely formatted way.
 
int project (int numberOfStepsTaken, int current, real t, real dt)
 
virtual void saveShow (GridFunction &gf0)
 Save a solution in the show file.
 
virtual void saveShowFileComments (Ogshow &show)
 : Set the titles and labels that go on the show file output
 
int setBoundaryCondition (aString &answer, IntegerArray &originalBoundaryCondition)
 
int setParametersInteractively ()
 Set parameters, boundary conditions, forcings, initial conditions etc. that define the problem.
 
virtual int setPlotTitle (const real &t, const real &dt)
 Set the plot titles for interactive plotting.
 
int setupGrids ()
 Setup and initialization. Build the grid and solution fields.
 
int setupGridFunctions ()
 Setup and initialization. Build the solution fields.
 
virtual int setupPde (aString &reactionName, bool restartChosen, IntegerArray &originalBoundaryCondition)
 Setup the PDE to be solved.
 
virtual int setupUserDefinedForcing ()
 
virtual int setupUserDefinedInitialConditions ()
 
void smoothDivergence (realCompositeGridFunction &u, const int numberOfSmooths)
 
int solve ()
 Solve the equations.
 
virtual int startTimeStep (real &t0, real &dt0, int &currentGF, int &nextGF, AdvanceOptions &advanceOptions)
 Start an individual time step (a time sub-step function).
 
int takeTimeStep (real &t0, real &dt0, int correction, AdvanceOptions &advanceOptions)
 Take a single time step (a time sub-step function).
 
virtual int updateForAdaptiveGrids (CompositeGrid &cg)
 
virtual int updateGeometryArrays (GridFunction &cgf)
 Update geometry arrays when the grid has changed (called by adaptGrids for example).
 
virtual int userDefinedBoundaryValues (const real &t, GridFunction &gf0, const int &grid, int side0=-1, int axis0=-1, ForcingTypeEnum forcingType=computeForcing)
 Assign user specific values for boundary conditions.
 
virtual int userDefinedForcing (realArray &f, const realMappedGridFunction &u, int iparam[], real rparam[])
 
virtual void userDefinedForcingCleanup ()
 This routine is called when Cgsm is finished and can be used to clean up memory.
 
virtual int userDefinedInitialConditions (CompositeGrid &cg, realCompositeGridFunction &u)
 
virtual void userDefinedInitialConditionsCleanup ()
 
int updateProjectionEquation ()
 
bool usingPMLBoundaryConditions () const
 
- Public Member Functions inherited from DomainSolver
 DomainSolver (Parameters &par, CompositeGrid &cg, GenericGraphicsInterface *ps=NULL, Ogshow *show=NULL, const int &plotOption=1)
 This is the constructor for the base class DomainSolver.
 
virtual ~DomainSolver ()
 Destructor.
 
virtual int adaptGrids (GridFunction &gf0, int numberOfGridFunctionsToUpdate=0, realCompositeGridFunction *cgf=NULL, realCompositeGridFunction *uWork=NULL)
 
virtual int addArtificialDissipation (realCompositeGridFunction &u, real dt)
 
virtual int addArtificialDissipation (realMappedGridFunction &u, real dt, int grid)
 
virtual int addConstraintEquation (Parameters &parameters, Oges &solver, realCompositeGridFunction &coeff, realCompositeGridFunction &ucur, realCompositeGridFunction &rhs, const int &numberOfComponents)
 
virtual void addForcing (realMappedGridFunction &dvdt, const realMappedGridFunction &u, int iparam[], real rparam[], realMappedGridFunction &dvdtImplicit=Overture::nullRealMappedGridFunction(), realMappedGridFunction *referenceFrameVelocity=NULL)
 
virtual int addGrids ()
 
virtual int advance (real &tFinal)
 
virtual void advanceAdamsPredictorCorrector (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceAdamsPredictorCorrectorNew (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 Advance using an Adams predictor corrector method (new way)
 
virtual void advanceADI (real &t, real &dt, int &numberOfSubSteps, int &init, int initialStep)
 
void advanceForwardEulerNew (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 Advance using an "forward-Euler" method (new way)
 
virtual void advanceImplicitMultiStep (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceImplicitMultiStepNew (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 Generic advance routine that uses the separate time sub-step functions.
 
virtual int advanceLineSolve (LineSolve &lineSolve, const int grid, const int direction, realCompositeGridFunction &u0, realMappedGridFunction &f, realMappedGridFunction &residual, const bool refactor, const bool computeTheResidual=false)
 
virtual void advanceMidPoint (real &t0, real &dt0, int &numberOfSubSteps, int initialStep)
 
virtual void advanceNewton (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceSecondOrderSystem (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceSteadyStateRungeKutta (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceTrapezoidal (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void advanceVariableTimeStepAdamsPredictorCorrector (real &t0, real &dt0, int &numberOfSubSteps, int &init, int initialStep)
 
virtual void allSpeedImplicitTimeStep (GridFunction &gf, real &t, real &dt0, int &numberOfTimeSteps, const real &nextTimeToPrint)
 
virtual int applyBoundaryConditions (const real &t, realMappedGridFunction &u, realMappedGridFunction &gridVelocity, const int &grid, const int &option=-1, realMappedGridFunction *puOld=NULL, realMappedGridFunction *pGridVelocityOld=NULL, const real &dt=-1.)
 
virtual int applyBoundaryConditionsForImplicitTimeStepping (GridFunction &cgf)
 
virtual int applyBoundaryConditionsForImplicitTimeStepping (realMappedGridFunction &u, realMappedGridFunction &uL, realMappedGridFunction &gridVelocity, real t, int scalarSystem, int grid)
 
virtual int applyFilter (int gfIndex)
 This function applies a spatial filter to the solution in gf[gfIndex].
 
virtual int assignInterfaceBoundaryConditions (GridFunction &cgf, const int &option=-1, int grid_=-1, GridFunction *puOld=NULL, const real &dt=-1.)
 
virtual void assignTestProblem (GridFunction &gf)
 
virtual void bodyForcingCleanup ()
 This routine is called when DomainSolver is finished and can be used to clean up memory.
 
virtual int boundaryConditionPredictor (const BoundaryConditionPredictorEnum bcpOption, const AdamsPCData &adamsData, const int orderOfExtrapolation, const int mNew, const int mCur, const int mOld, realCompositeGridFunction *puga=NULL, realCompositeGridFunction *pugb=NULL, realCompositeGridFunction *pugc=NULL, realCompositeGridFunction *pugd=NULL)
 Apply operations required before applying the boundary conditions. E.g. extrapolate the pressure in time for fourth-order INS.
 
virtual int buildAdaptiveGridOptionsDialog (DialogData &dialog)
 Build the dialog that shows the various general options.
 
virtual int buildAmrGridsForInitialConditions ()
 Build the AMR hierarchy of grids for the initial conditions.
 
virtual int buildGrid (Mapping *&newMapping, int newGridNumber, IntegerArray &sharedBoundaryCondition)
 
virtual int buildOutputOptionsDialog (DialogData &dialog)
 Build the output options dialog.
 
virtual void buildImplicitSolvers (CompositeGrid &cg)
 
virtual int buildMovingGridOptionsDialog (DialogData &dialog)
 Build the dialog that shows the various general options.
 
void checkArrays (const aString &label)
 
void checkSolution (const realGridCollectionFunction &u, const aString &title, bool printResults=false)
 
int checkSolution (realMappedGridFunction &u, const aString &title, bool printResults, int grid, real &maxVal, bool printResultsOnFailure=false)
 
virtual void cleanupInitialConditions ()
 Cleanup routines after the initial conditions have been assigned.
 
virtual int computeBodyForcing (GridFunction &gf, const real &tForce)
 Compute the body forcing such as drag models, wake models and heat sources.
 
virtual void correctMovingGrids (const real t1, const real t2, GridFunction &cgf1, GridFunction &cgf2)
 Corrector step for moving grids.
 
const int & debug () const
 
virtual void determineErrors (GridFunction &cgf, const aString &label=nullString)
 
virtual void determineErrors (realCompositeGridFunction &u, realMappedGridFunction **gridVelocity, const real &t, const int options, RealArray &err, const aString &label=nullString)
 
virtual void determineErrors (realMappedGridFunction &v, const real &t)
 
virtual void displayBoundaryConditions (FILE *file=stdout)
 
virtual int displayParameters (FILE *file=stdout)
 Display DomainSolver parameters.
 
virtual int endTimeStepFE (real &t0, real &dt0, AdvanceOptions &advanceOptions)
 End an individual time step (a time sub-step function).
 
virtual int endTimeStepIM (real &t0, real &dt0, AdvanceOptions &advanceOptions)
 End an individual time step (a time sub-step function).
 
virtual int endTimeStepPC (real &t0, real &dt0, AdvanceOptions &advanceOptions)
 End an individual time step (a time sub-step function).
 
virtual int endTimeStepAF (real &t0, real &dt0, AdvanceOptions &advanceOptions)
 End an individual time step (a time sub-step function).
 
virtual void eulerStep (const real &t1, const real &t2, const real &t3, const real &dt0, GridFunction &cgf1, GridFunction &cgf2, GridFunction &cgf3, realCompositeGridFunction &ut, realCompositeGridFunction &uti, int stepNumber, int &numberOfSubSteps)
 
void extrapolateInterpolationNeighbours (GridFunction &gf, const Range &C)
 Extrapolate interpolation neighbours.
 
virtual int fixupUnusedPoints (realCompositeGridFunction &u)
 
virtual void formMatrixForImplicitSolve (const real &dt0, GridFunction &cgf1, GridFunction &cgf0)
 
virtual int getAmrErrorFunction (realCompositeGridFunction &u, real t, intCompositeGridFunction &errorFlag, realCompositeGridFunction &error)
 
virtual int getAmrErrorFunction (realCompositeGridFunction &u, real t, realCompositeGridFunction &error, bool computeOnFinestLevel=false)
 
const aString & getClassName () const
 
virtual int getAdaptiveGridOption (const aString &answer, DialogData &dialog)
 : Look for a general option in the string "answer"
 
virtual void getGridInfo (real &totalNumberOfGridPoints, real dsMin[3], real dsAve[3], real dsMax[3], real &maxMax, real &maxMin, real &minMin)
 Evaluate the min and max grid spacing, total number of grid points etc.
 
virtual void getGridVelocity (GridFunction &gf0, const real &tGV)
 
int getMaterialProperties (GridFunction &solution, realCompositeGridFunction &matProp)
 Evaluate the variable material parameters (for plotting for example).
 
real getMovingGridMaximumRelativeCorrection ()
 Return the maximum relative change in the moving grid correction scheme. This is usually only an issue for "light" bodies.
 
bool getMovingGridCorrectionHasConverged ()
 Return true if the correction steps for moving grids have converged. This is usually only an issue for "light" bodies.
 
virtual int getMovingGridOption (const aString &answer, DialogData &dialog)
 : Look for a general option in the string "answer"
 
const aString & getName () const
 
virtual int getOutputOption (const aString &command, DialogData &dialog)
 : Look for an output option in the string "answer"
 
const aString & getPdeName () const
 
virtual int getResidual (real t, real dt, GridFunction &cgf, realCompositeGridFunction &residual)
 Compute the residual for "steady state" solvers.
 
int getResidualInfo (real t0, const realCompositeGridFunction &residual, real &maximumResidual, real &maximuml2, FILE *file=NULL)
 Compute the max and l2 residuals and optionally output the info to a file.
 
virtual void getSolutionBounds (const realMappedGridFunction &u, realArray &uMin, realArray &uMax, real &uvMax)
 
virtual int getTimeDependentBoundaryConditions (MappedGrid &mg, real t, int grid=0, int side0=-1, int axis0=-1, ForcingTypeEnum forcingType=computeForcing)
 
virtual int getTimeDerivativeOfBoundaryValues (GridFunction &gf0, const real &t, const int &grid, int side=-1, int axis=-1)
 
virtual real getTimeStep (MappedGrid &mg, realMappedGridFunction &u, realMappedGridFunction &gridVelocity, const Parameters::TimeSteppingMethod &timeSteppingMethod, const int &grid)
 
int getTimeStepAndNumberOfSubSteps (GridFunction &cgf, int stepNumber, int &numberOfSubSteps, real &dt)
 Compute a new time step and the number sub-steps to reach the next time to print.
 
virtual void getTimeSteppingEigenvalue (MappedGrid &mg, realMappedGridFunction &u, realMappedGridFunction &gridVelocity, real &reLambda, real &imLambda, const int &grid)
 
virtual int getUt (const realMappedGridFunction &v, const realMappedGridFunction &gridVelocity, realMappedGridFunction &dvdt, int iparam[], real rparam[], realMappedGridFunction &dvdtImplicit=Overture::nullRealMappedGridFunction(), MappedGrid *pmg2=NULL, const realMappedGridFunction *pGridVelocity2=NULL)
 
virtual void implicitSolve (const real &dt0, GridFunction &cgf1, GridFunction &cgf0)
 
virtual int initializeInterfaces (GridFunction &cgf)
 
virtual int initializeSolution ()
 
virtual int initializeTimeSteppingFE (real &t0, real &dt0)
 Initialize the time stepping (a time sub-step function).
 
virtual int initializeTimeSteppingIM (real &t0, real &dt0)
 Initialize the time stepping (a time sub-step function).
 
virtual int initializeTimeSteppingPC (real &t0, real &dt0)
 Initialize the time stepping (a time sub-step function).
 
virtual int initializeTimeSteppingAF (real &t0, real &dt0)
 Initialize the time stepping (a time sub-step function).
 
virtual int initializeTurbulenceModels (GridFunction &cgf)
 
virtual int interpolate (GridFunction &cgf, const Range &R=nullRange)
 
virtual int interpolateAndApplyBoundaryConditions (GridFunction &cgf, GridFunction *uOld=NULL, const real &dt=-1.)
 
virtual bool isImplicitMatrixSingular (realCompositeGridFunction &uL)
 
virtual int jetInflow (GridFunction &cgf)
 
virtual void moveGrids (const real &t1, const real &t2, const real &t3, const real &dt0, GridFunction &cgf1, GridFunction &cgf2, GridFunction &cgf3)
 
virtual bool movingGridProblem () const
 
virtual int newAdaptiveGridBuilt (CompositeGrid &cg, realCompositeGridFunction &u, bool updateSolution)
 
const int & numberOfComponents () const
 
virtual int output (GridFunction &gf0, int stepNumber)
 
virtual void outputHeader ()
 Output the main header banner that includes info about the grid and parameters.
 
virtual int outputProbes (GridFunction &gf0, int stepNumber)
 output probe information at a given time
 
virtual void outputSolution (realCompositeGridFunction &u, const real &t, const aString &label=nullString, int printOption=0)
 
virtual void outputSolution (const realMappedGridFunction &u, const real &t)
 
virtual int parabolicInflow (GridFunction &cgf)
 
virtual int plot (const real &t, const int &optionIn, real &tFinal)
 
void printP (const char *format,...) const
 Domain solver print function with a prefix identifier string.
 
virtual int printStatistics (FILE *file=stdout)
 Output timing statistics.
 
virtual int project (GridFunction &cgf)
 
virtual int readRestartFile (realCompositeGridFunction &v, real &t, const aString &restartFileName=nullString)
 
virtual int readRestartFile (GridFunction &cgf, const aString &restartFileName=nullString)
 
virtual int saveSequenceInfo (real t0, const realCompositeGridFunction &residual)
 Save sequence info (such as the norm of the residual) into the time history arrays.
 
virtual int saveRestartFile (const GridFunction &cgf, const aString &restartFileName)
 
virtual int setBoundaryConditionsInteractively (const aString &answer, const IntegerArray &originalBoundaryCondition)
 
virtual int setDefaultDataForBoundaryConditions ()
 
virtual int setFinalTime (const real &tFinal)
 Set the time to integrate to.
 
virtual void setInterfacesAtPastTimes (const real &t1, const real &t2, const real &t3, const real &dt0, GridFunction &cgf1, GridFunction &cgf2, GridFunction &cgf3)
 Assign interface positions for "negative" times.
 
virtual int setInterfaceBoundaryCondition (GridFaceDescriptor &info)
 Setup an interface boundary condition.
 
void setName (const aString &name)
 
void setNameOfGridFile (const aString &name)
 Provide the name of the file from which the overlapping grid was read.
 
virtual int setOgesBoundaryConditions (GridFunction &cgf, IntegerArray &boundaryConditions, RealArray &boundaryConditionData, const int imp)
 
virtual int setParametersInteractively (bool runSetupOnExit=true)
 Assign run-time parameters for the DomainSolver.
 
virtual void setSensitivity (GUIState &dialog, bool trueOrFalse)
 
virtual int setSolverParameters (const aString &command=nullString, DialogData *interface=NULL)
 Prompt for changes in the solver parameters.
 
virtual int setupUserDefinedMaterialProperties ()
 Interactively choose material properties (e.g. rho,mu,lambda for elasticity)
 
virtual int setVariableBoundaryValues (const real &t, GridFunction &gf0, const int &grid, int side0=-1, int axis0=-1, ForcingTypeEnum forcingType=computeForcing)
 Assign the right-hand-side for variable boundary conditions.
 
virtual int setVariableMaterialProperties (GridFunction &gf, const real &t)
 Assign variable material properties: user-defined or "body-force" regions.
 
virtual real sizeOf (FILE *file=NULL) const
 
virtual void smoothVelocity (GridFunction &cgf, const int numberOfSmooths)
 
virtual void solveForTimeIndependentVariables (GridFunction &cgf, bool updateSolutionDependentEquations=false)
 : Solve for the pressure given the velocity.
 
virtual int startTimeStepFE (real &t0, real &dt0, int &currentGF, int &nextGF, AdvanceOptions &advanceOptions)
 Start an individual time step (a time sub-step function).
 
virtual int startTimeStepIM (real &t0, real &dt0, int &currentGF, int &nextGF, AdvanceOptions &advanceOptions)
 Start an individual time step (a time sub-step function).
 
virtual int startTimeStepPC (real &t0, real &dt0, int &currentGF, int &nextGF, AdvanceOptions &advanceOptions)
 Start an individual time step (a time sub-step function).
 
virtual int startTimeStepAF (real &t0, real &dt0, int &currentGF, int &nextGF, AdvanceOptions &advanceOptions)
 Start an individual time step (a time sub-step function) for an approximate factorization method.
 
virtual void takeOneStep (real &t, real &dt, int stepNumber, int &numberOfSubSteps)
 Advance one time-step. This function is used by the multi-physics solver Cgmp.
 
virtual int takeTimeStepFE (real &t0, real &dt0, int correction, AdvanceOptions &advanceOptions)
 Take a single time step (a time sub-step function).
 
virtual int takeTimeStepIM (real &t0, real &dt0, int correction, AdvanceOptions &advanceOptions)
 Take a single time step (a time sub-step function).
 
virtual int takeTimeStepPC (real &t0, real &dt0, int correction, AdvanceOptions &advanceOptions)
 Take a single time step (a time sub-step function).
 
virtual int takeTimeStepAF (real &t0, real &dt0, int correction, AdvanceOptions &advanceOptions)
 Take a time step using the approximate factored scheme.
 
virtual int timeIndependentBoundaryConditions (GridFunction &cgf)
 
virtual void initializeFactorization ()
 
virtual int tracking (GridFunction &gf0, int stepNumber)
 
const bool & twilightZoneFlow () const
 
virtual void userDefinedCleanup ()
 This routine is called when DomainSolver is finished and can be used to clean up memory.
 
virtual int userDefinedGrid (GridFunction &gfct, Mapping *&newMapping, int newGridNumber, IntegerArray &sharedBoundaryCondition)
 
virtual int userDefinedForcing (realCompositeGridFunction &f, GridFunction &gf, const real &tForce)
 User defined forcing. Compute a user defined forcing that will be added to the right-hand side of the equations. This function is called to actually evaluate the user defined forcing The function setupUserDefinedForcing is first called to assign the option and parameters. Rewrite or add new options to this function and to setupUserDefinedForcing to supply your own forcing option.
 
virtual int userDefinedMaterialProperties (GridFunction &gf)
 Assign the user defined material properties.
 
virtual void userDefinedMaterialPropertiesCleanup ()
 This routine is called when DomainSolver is finished and can be used to clean up memory.
 
virtual int userDefinedOutput (GridFunction &gf, int stepNumber)
 
virtual int updateForMovingGrids (GridFunction &cgf)
 Update the DomainSolver after grids have moved or have been adapted.
 
virtual int updateForNewTimeStep (GridFunction &gf, const real &dt)
 Update the geometry arrays.
 
virtual int updateToMatchGrid (CompositeGrid &cg)
 
virtual int updateToMatchNewGrid (CompositeGrid &cgNew, IntegerArray &changes, IntegerArray &sharedBoundaryCondition, GridFunction &gf0)
 
virtual int updateStateVariables (GridFunction &cgf, int stage=-1)
 Ths function is used to update state-variables. For example, the visco plastic viscosity.
 
virtual void updateTimeIndependentVariables (CompositeGrid &cg0, GridFunction &cgf)
 
virtual int updateVariableTimeInterpolation (int newGrid, GridFunction &cgf)
 
virtual int updateWorkSpace (GridFunction &gf0)
 
virtual int variableTimeStepBoundaryInterpolation (int grid, GridFunction &cgf)
 
realCompositeGridFunction & p () const
 
realCompositeGridFunction & px () const
 
realCompositeGridFunction & rL () const
 
realCompositeGridFunction & pL () const
 
realCompositeGridFunction & rho () const
 
realCompositeGridFunction & gam () const
 

Static Public Member Functions

static int addPrefix (const aString label[], const aString &prefix, aString cmd[], const int maxCommands)
 
- Static Public Member Functions inherited from DomainSolver
static int getBounds (const realCompositeGridFunction &u, RealArray &uMin, RealArray &uMax, real &uvMax)
 
static int getOriginalBoundaryConditions (CompositeGrid &cg, IntegerArray &originalBoundaryCondition)
 Save the original boundary conditions from the CompositeGrid.
 

Public Attributes

enum Cgsm::KnownSolutionEnum knownSolutionOption
 
ForcingEnum forcingOption
 
InitialConditionEnum initialConditionOption
 
real c1
 
real c2
 
real omegaForInterfaceIteration
 
int materialInterfaceOption
 
std::vector< InterfaceInfointerfaceInfo
 
int kx
 
int ky
 
int kz
 
real deltaT
 
real betaGaussianPlaneWave
 
real x0GaussianPlaneWave
 
real y0GaussianPlaneWave
 
real z0GaussianPlaneWave
 
real gaussianSourceParameters [5]
 
int numberOfGaussianPulses
 
real gaussianPulseParameters [maxNumberOfGaussianPulses][6]
 
int numberOfGaussianChargeSources
 
real gaussianChargeSourceParameters [maxNumberOfGaussianChargeSources][9]
 
int numberOfStepsTaken
 
RealArray dxMinMax
 
real divUMax
 
real gradUMax
 
real vorUMax
 
int numberOfIterationsForInterfaceBC
 
int orderOfArtificialDissipation
 
real artificialDissipation
 
int artificialDissipationInterval
 
real divergenceDamping
 
bool checkErrors
 
bool computeEnergy
 
bool plotDivergence
 
bool plotVorticity
 
bool plotErrors
 
bool plotDissipation
 
bool plotScatteredField
 
bool plotTotalField
 
bool plotRho
 
bool plotVelocity
 
bool plotStress
 
bool compareToReferenceShowFile
 
aString nameOfReferenceShowFile
 
RealArray maximumError
 
RealArray solutionNorm
 
real totalEnergy
 
real initialTotalEnergy
 
real dScale
 
real radiusForCheckingErrors
 
ElementTypeEnum elementType
 
real cylinderRadius
 
real cylinderAxisStart
 
real cylinderAxisEnd
 
int numberLinesForPML
 
int pmlPower
 
real pmlLayerStrength
 
int pmlErrorOffset
 
realArray * vpml
 
bool useConservative
 
bool useVariableDissipation
 
real initialConditionParameters [10]
 
real slowStartInterval
 
aString probeFileName
 
ArraySimple< real > probes
 
ArraySimple< int > probeGridLocation
 
int frequencyToSaveProbes
 
FILE * probeFile
 
real normalPlaneMaterialInterface [3]
 
real x0PlaneMaterialInterface [3]
 
int radbcGrid [2]
 
int radbcSide [2]
 
int radbcAxis [2]
 
CompositeGridOperators * cgop
 
realCompositeGridFunction * cgdissipation
 
realCompositeGridFunction * cgerrp
 
realCompositeGridFunction * variableDissipation
 
realCompositeGridFunction * knownSolution
 
int numberOfTimeLevels
 
int myid
 
int numberOfFunctions
 
int currentFn
 
realCompositeGridFunction * cgfn
 
GUIState * runTimeDialog
 
DialogData * pPlotOptionsDialog
 
DialogData * pParametersDialog
 
aString movieFileName
 
int movieFrame
 
int plotChoices
 
int plotOptions
 
int totalNumberOfArrays
 
aString nameOfGridFile
 
ShowFileReader * referenceShowFileReader
 
int sequenceCount
 
int numberOfSequences
 
RealArray timeSequence
 
RealArray sequence
 
bool useStreamMode
 
int frequencyToSaveInShowFile
 
int showFileFrameForGrid
 
bool saveDivergenceInShowFile
 
bool saveErrorsInShowFile
 
bool saveVelocityInShowFile
 
bool saveStressInShowFile
 
real sizeOfLocalArraysForAdvance
 
- Public Attributes inherited from DomainSolver
CompositeGrid & cg
 
OgesParameters pressureSolverParameters
 
OgesParameters implicitTimeStepSolverParameters
 
CompositeGridOperators finiteDifferenceOperators
 
real dt
 
int numberOfStepsTaken
 
Parametersparameters
 
GridFunction gf [maximumNumberOfGridFunctionsToUse]
 
int current
 
int movieFrame
 
aString movieFileName
 
int numberOfGridFunctionsToUse
 
int numberOfExtraFunctionsToUse
 
int totalNumberOfArrays
 
realCompositeGridFunction fn [maximumNumberOfExtraFunctionsToUse]
 
RealArray variableDt
 
RealArray variableTime
 
realArray * ui
 
RealArray tv
 
RealArray tvb
 
RealArray tv0
 
realCompositeGridFunction coeff
 
int numberOfImplicitSolvers
 
Oges * implicitSolver
 
realCompositeGridFunction * implicitCoeff
 
Oges * poisson
 
realCompositeGridFunction pressureRightHandSide
 
realCompositeGridFunction poissonCoefficients
 
realCompositeGridFunction * pp
 
realCompositeGridFunction * ppx
 
realCompositeGridFunction * prL
 
realCompositeGridFunction * ppL
 
realCompositeGridFunction * prho
 
realCompositeGridFunction * pgam
 
realCompositeGridFunction * pvIMS
 
realCompositeGridFunction * pwIMS
 
realCompositeGridFunction * previousPressure
 
realCompositeGridFunction * puLinearized
 
realMappedGridFunction * pGridVelocityLinearized
 
LineSolvepLineSolve
 
bool gridHasMaterialInterfaces
 
realCompositeGridFunction * pdtVar
 
std::vector< real > hMin
 
std::vector< real > hMax
 
std::vector< real > numberOfGridPoints
 
std::vector< real > dtv
 
std::vector< real > realPartOfEigenvalue
 
std::vector< real > imaginaryPartOfEigenvalue
 
int numberSavedToShowFile
 
CG_ApproximateFactorization::FactorList factors
 

Protected Member Functions

int buildTimeSteppingDialog (DialogData &dialog)
 : Build the time stepping options dialog.
 
int getTimeSteppingOption (const aString &answer, DialogData &dialog)
 
int buildForcingOptionsDialog (DialogData &dialog)
 Build the dialog that shows the various forcing options.
 
int getForcingOption (const aString &command, DialogData &dialog)
 : Look for a forcing option in the string "answer"
 
int buildGeneralOptionsDialog (DialogData &dialog)
 Build the dialog that shows the various general options.
 
int getGeneralOption (const aString &answer, DialogData &dialog)
 : Look for a general option in the string "answer"
 
int buildInputOutputOptionsDialog (DialogData &dialog)
 Build the input-output options dialog.
 
int getInputOutputOption (const aString &command, DialogData &dialog)
 : Look for an input/output option in the string "answer"
 
int buildPlotOptionsDialog (DialogData &dialog)
 Build the plot options dialog.
 
int getPlotOption (const aString &command, DialogData &dialog)
 : Look for a plot option in the string "answer"
 
int buildParametersDialog (DialogData &dialog)
 
int saveSequenceInfo (real t0, RealArray &sequenceData)
 
int saveSequencesToShowFile ()
 Save sequence info to the show file.
 
void setup (const real &time=0.)
 
int updateForNewTimeStep (GridFunction &cgf, real &dt)
 Update geometry arrays, solution at old times etc. after the time step has changed.
 
void writeParameterSummary (FILE *file)
 Output run-time parameters for the header.
 

Additional Inherited Members

- Protected Attributes inherited from DomainSolver
aString name
 
aString className
 
aString pdeName
 
int restartNumber
 
DialogData * pUniformFlowDialog
 
DialogData * pStepFunctionDialog
 
DialogData * pShowFileDialog
 
DialogData * pTzOptionsDialog
 
int chooseAComponentMenuItem
 
int numberOfPushButtons
 
int numberOfTextBoxes
 
int itemsToPlot
 

Member Enumeration Documentation

anonymous enum
Enumerator
maxNumberOfGaussianPulses 
anonymous enum
Enumerator
maxNumberOfGaussianChargeSources 
Enumerator
structuredElements 
triangles 
quadrilaterals 
hexahedra 
defaultUnstructured 
Enumerator
computeInitialConditions 
computeErrors 
Enumerator
noForcing 
gaussianSource 
twilightZoneForcing 
planeWaveBoundaryForcing 
gaussianChargeSource 
userDefinedForcingOption 
Enumerator
defaultInitialCondition 
planeWaveInitialCondition 
gaussianPlaneWave 
gaussianPulseInitialCondition 
squareEigenfunctionInitialCondition 
annulusEigenfunctionInitialCondition 
zeroInitialCondition 
planeWaveScatteredFieldInitialCondition 
planeMaterialInterfaceInitialCondition 
gaussianIntegralInitialCondition 
twilightZoneInitialCondition 
parabolicInitialCondition 
specialInitialCondition 
hempInitialCondition 
knownSolutionInitialCondition 
userDefinedInitialCondition 
Enumerator
noKnownSolution 
twilightZoneKnownSolution 
squareEigenfunctionKnownSolution 
annulusEigenfunctionKnownSolution 

Constructor & Destructor Documentation

Cgsm::Cgsm ( CompositeGrid &  cg_,
GenericGraphicsInterface *  ps_ = NULL,
Ogshow *  show = NULL,
const int &  plotOption_ = 1 
)

Constructor for the Cgsm class.

Parameters
cg_(input) : use this CompositeGrid.
ps(input) : pointer to a graphics object to use.
show(input) : pointer to a show file to use.
plotOption_(input) : plot option
Note
SmParameters (passed to the DomainSolver constructor above) replaces the base class Parameters

References artificialDissipation, artificialDissipationInterval, betaGaussianPlaneWave, c1, c2, cgdissipation, cgerrp, cgfn, cgop, checkErrors, DomainSolver::className, compareToReferenceShowFile, computeEnergy, currentFn, cylinderAxisEnd, cylinderAxisStart, cylinderRadius, Parameters::dbase, defaultInitialCondition, divergenceDamping, divUMax, dScale, elementType, forcingOption, frequencyToSaveInShowFile, frequencyToSaveProbes, gaussianChargeSourceParameters, gaussianPulseParameters, gaussianSourceParameters, gradUMax, DomainSolver::gridHasMaterialInterfaces, initialConditionOption, initialTotalEnergy, knownSolution, knownSolutionOption, kx, ky, kz, lambda, lambdaGrid, materialInterfaceOption, movieFrame, mu, muGrid, myid, DomainSolver::name, noForcing, noKnownSolution, normalPlaneMaterialInterface, np, numberLinesForPML, numberOfFunctions, numberOfGaussianChargeSources, numberOfGaussianPulses, numberOfIterationsForInterfaceBC, numberOfSequences, numberOfStepsTaken, omegaForInterfaceIteration, orderOfArtificialDissipation, DomainSolver::parameters, plotChoices, plotDissipation, plotDivergence, plotErrors, plotOptions, plotRho, plotScatteredField, plotStress, plotTotalField, plotVelocity, plotVorticity, pmlErrorOffset, pmlLayerStrength, pmlPower, probeFile, probeFileName, radbcAxis, radbcGrid, radbcSide, radiusForCheckingErrors, referenceShowFileReader, DomainSolver::rho(), runTimeDialog, saveDivergenceInShowFile, saveErrorsInShowFile, saveStressInShowFile, saveVelocityInShowFile, sequenceCount, setupGrids(), showFileFrameForGrid, sizeOfLocalArraysForAdvance, slowStartInterval, structuredElements, totalEnergy, totalNumberOfArrays, useConservative, useStreamMode, useVariableDissipation, variableDissipation, vorUMax, vpml, x0GaussianPlaneWave, x0PlaneMaterialInterface, y0GaussianPlaneWave, and z0GaussianPlaneWave.

Cgsm::~Cgsm ( )

Member Function Documentation

int Cgsm::addDissipation ( int  current,
real  t,
real  dt,
realMappedGridFunction *  field,
const Range &  C 
)

Add in an artificial dissipation.

Parameters
C(input) : apply to these components.

References artificialDissipation, DomainSolver::current, d, DomainSolver::dt, getIndex(), I1, I2, I3, mg, n, numberOfTimeLevels, orderOfArtificialDissipation, and u.

int Cgsm::addPrefix ( const aString  label[],
const aString &  prefix,
aString  cmd[],
const int  maxCommands 
)
static

References assert(), i, and printF().

void Cgsm::advance ( int  current,
real  t,
real  dt 
)
void Cgsm::advanceFOS ( int  current,
real  t,
real  dt,
RealCompositeGridFunction *  ut = NULL,
real  tForce = 0. 
)
void Cgsm::advanceMethodOfLines ( int  current,
real  t,
real  dt 
)
void Cgsm::advanceSOS ( int  current,
real  t,
real  dt,
RealCompositeGridFunction *  ut = NULL,
real  tForce = 0. 
)

Advance the solution as a second-order system. This function will.

References DomainSolver::addForcing(), advSM, GridFunctionFilter::applyFilter(), DomainSolver::applyFilter(), artificialDissipation, assert(), c1, c2, DomainSolver::cg, cgdissipation, checkArrays(), computeDissipation(), GridMaterialProperties::constantMaterialProperties, DomainSolver::current, Parameters::dbase, DomainSolver::debug(), display(), DomainSolver::dt, dx, GridFunctionFilter::explicitFilter, DomainSolver::extrapolateInterpolationNeighbours(), f, GridFunctionFilter::filterFrequency, GridFunctionFilter::filterType, forcingOption, getBoundsForPML(), getErrors(), getForcing(), getIndex(), GridMaterialProperties::getMaterialFormat(), DomainSolver::getName(), DomainSolver::gf, grid, DomainSolver::gridHasMaterialInterfaces, gridType, I1, I2, I3, isRectangular, kx, ky, kz, lambda, lambdaGrid, mask, maskLocal, materialFormat, matIndexPtr, matValPtr, mg, SmParameters::modifiedEquationTimeStepping, mu, muGrid, myid, ndMatProp, noForcing, DomainSolver::numberOfComponents(), numberOfStepsTaken, numberOfTimeLevels, ok, orderOfArtificialDissipation, GridFunctionFilter::orderOfFilter, OV_ABORT(), DomainSolver::parameters, GridMaterialProperties::piecewiseConstantMaterialProperties, planeWaveBoundaryForcing, printF(), DomainSolver::rho(), sizeOfLocalArraysForAdvance, tc, twilightZoneForcing, GridFunction::u, u, uc, uLocal, useConservative, useVariableDissipation, variableDissipation, vc, and wc.

Referenced by advance(), and getUtSOS().

void Cgsm::applyBoundaryConditions ( int  option,
real  dt,
int  current,
int  prev 
)

High-level apply boundary conditions routine.

Parameters
option,:
Note
: Apply BC to "current" solution at time t optionally using "prev" for the solution at t-dt (prev is not currently used.

References assignBoundaryConditions(), GridFunction::cg, DomainSolver::cg, DomainSolver::current, DomainSolver::getTimeDependentBoundaryConditions(), DomainSolver::gf, grid, DomainSolver::parameters, GridFunction::t, Parameters::thereAreTimeDependentUserBoundaryConditions(), GridFunction::u, and userDefinedBoundaryValues().

Referenced by advance(), advanceMethodOfLines(), applyBoundaryConditions(), initializeTimeStepping(), solve(), and takeTimeStep().

int Cgsm::applyBoundaryConditions ( GridFunction cgf,
const int &  option = -1,
int  grid_ = -1,
GridFunction puOld = NULL,
const real &  dt = -1. 
)
virtual

Here is apply BC function from the DomainSolver (used in adaptGrids)

Parameters
option,:

Reimplemented from DomainSolver.

References applyBoundaryConditions(), assert(), DomainSolver::current, DomainSolver::gf, numberOfTimeLevels, GridFunction::u, and u.

int Cgsm::assignAnnulusEigenfunction ( const int  gfIndex,
const EvaluationOptionsEnum  evalOption 
)

Assign the annulus eigenfunction initial conditions or evaluate the error.

Parameters
gfIndex(input) : assign gf[gfIndex].u
evalOption(input) : computeInitialConditions or computeErrors

References a, assert(), assignStress, assignVelocities, c, c1, c2, DomainSolver::cg, computeErrors, computeInitialConditions, cost, cosTheta, d, Parameters::dbase, DomainSolver::debug(), ERR, FOR_3D, getEng, getIndex(), DomainSolver::gf, grid, SmParameters::hemp, i1, I1, i2, I2, i3, I3, includeGhost, initialConditionParameters, isRectangular, lambda, lambdaGrid, mg, mu, muGrid, DomainSolver::numberOfComponents(), ok, omega, OV_ABORT(), DomainSolver::parameters, pc, printF(), r, DomainSolver::rho(), rx, ry, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, scale, sinTheta, GridFunction::t, tc, GridFunction::u, u, U, uc, ue, uLocal, ux, uy, v1c, v2c, v3c, vc, wc, x, X, x2, x3, and x4.

Referenced by assignInitialConditions(), and getErrors().

void Cgsm::assignBoundaryConditions ( int  option,
int  grid,
real  t,
real  dt,
realMappedGridFunction &  u,
realMappedGridFunction &  uOld,
int  current 
)

Apply boundary conditions.

Parameters
option,:

References assignBoundaryConditionsFOS(), assignBoundaryConditionsSOS(), Parameters::dbase, and DomainSolver::parameters.

Referenced by applyBoundaryConditions().

void Cgsm::assignBoundaryConditionsFOS ( int  option,
int  grid,
real  t,
real  dt,
realMappedGridFunction &  u,
realMappedGridFunction &  uOld,
int  current 
)

Apply boundary conditions for the First-Order-System.

Parameters
option,:

References a, a0, SmParameters::abcPML, addBoundaryForcing, all, assert(), assignStress, assignVelocities, axis, bcfOffset, bcOptSmFOS, c1, c2, cb1, cb2, GridMaterialProperties::constantMaterialProperties, cp, cr, cs, data, Parameters::dbase, dbc, DomainSolver::debug(), dirichlet, SmParameters::dirichletBoundaryCondition, SmParameters::displacementBC, display(), DomainSolver::dt, dtb2, dx, f, FOR_3D, forcingOption, Parameters::getBoundaryData(), getIndex(), getLocalBoundsAndBoundaryConditions(), GridMaterialProperties::getMaterialFormat(), grid, gridType, SmParameters::hemp, i1, I1, i2, I2, i3, I3, Ig1, Ig2, Ig3, includeGhost, SmParameters::interfaceBoundaryCondition, Parameters::isAdaptiveGridProblem(), isRectangular, k, lambda, lambdaGrid, m, mask, materialFormat, matIndexPtr, matValPtr, mg, mStart, mu, muGrid, n, ndMatProp, nk, np, ns, DomainSolver::numberOfComponents(), numberOfTimeLevels, ok, omega, OV_ABORT(), DomainSolver::p(), pAddBoundaryForcing, DomainSolver::parameters, pbcf, pbcfOffset, pc, pdbc, period, GridMaterialProperties::piecewiseConstantMaterialProperties, planeWaveBoundaryForcing, printF(), DomainSolver::printP(), DomainSolver::rho(), rx, rxt, ry, ryt, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, scale, side, SmParameters::slipWall, SmParameters::symmetry, tc, SmParameters::tractionBC, trd, twd, twilightZoneForcing, tz, u, U, U0, U0T, U0X, U0Y, uc, uLocal, useConservative, V, v1c, v2c, v3c, vc, vcenter, wc, x, X, xcenter, xp1, xShift, ycenter, ySurf, z, and zcenter.

Referenced by assignBoundaryConditions().

void Cgsm::assignBoundaryConditionsSOS ( int  option,
int  grid,
real  t,
real  dt,
realMappedGridFunction &  u,
realMappedGridFunction &  uOld,
int  current 
)

Apply boundary conditions for the second-order-system .

Parameters
option,:

References a, a0, SmParameters::abcPML, addBoundaryForcing, all, DomainSolver::applyFilter(), assert(), assignStress, assignVelocities, axis, bcfOffset, bcOptSM, bcOptSmCons, c1, c2, cb1, cb2, DomainSolver::cg, GridMaterialProperties::constantMaterialProperties, cp, cr, cs, data, Parameters::dbase, dbc, DomainSolver::debug(), dir, dirichlet, SmParameters::dirichletBoundaryCondition, SmParameters::displacementBC, display(), DomainSolver::dt, dtb2, dx, f, FOR_3D, forcingOption, Parameters::getBoundaryData(), getBoundsForPML(), getIndex(), getLocalBoundsAndBoundaryConditions(), GridMaterialProperties::getMaterialFormat(), DomainSolver::gf, grid, gridType, SmParameters::hemp, i1, I1, i2, I2, i3, I3, Ig1, Ig2, Ig3, includeGhost, SmParameters::interfaceBoundaryCondition, Parameters::isAdaptiveGridProblem(), isRectangular, k, lambda, lambdaGrid, m, mask, materialFormat, matIndexPtr, matValPtr, mg, mStart, mu, muGrid, myid, n, ndMatProp, nk, np, ns, numberLinesForPML, DomainSolver::numberOfComponents(), numberOfTimeLevels, ok, omega, OV_ABORT(), DomainSolver::p(), pAddBoundaryForcing, DomainSolver::parameters, pbcf, pbcfOffset, pc, pdbc, period, GridMaterialProperties::piecewiseConstantMaterialProperties, planeWaveBoundaryForcing, pmlSolidMechanics, printF(), DomainSolver::printP(), DomainSolver::rho(), rx, rxt, ry, ryt, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, scale, side, SmParameters::symmetry, tc, trd, twd, twilightZoneForcing, tz, GridFunction::u, u, U, U0, U0T, U0X, U0Y, uc, uLocal, useConservative, v1c, v2c, v3c, vc, vcenter, vpml, VPML, wc, WPML, x, X, xcenter, xp1, xShift, ycenter, ySurf, z, and zcenter.

Referenced by assignBoundaryConditions().

int Cgsm::assignGaussianPulseInitialConditions ( int  gfIndex)
int Cgsm::assignHempInitialConditions ( int  gfIndex)

Assign initial conditions for the Hemp solver.

This function assigns the solution at t=0. It may also initialize the solution at previous times.

Parameters
gfIndex(input) : assign gf[gfIndex].u

References a, assert(), assignStress, assignVelocities, c, DomainSolver::cg, d, Parameters::dbase, DomainSolver::debug(), dx, FOR_3, FOR_3D, getEng, getIndex(), DomainSolver::gf, grid, SmParameters::hemp, i1, I1, i2, I2, i3, I3, includeGhost, isRectangular, k, lambda, lambdaGrid, mg, mu, muGrid, DomainSolver::numberOfComponents(), ok, omega, P0, DomainSolver::parameters, pc, printF(), Q0, DomainSolver::rho(), S110, s11c, S120, s12c, s13c, s21c, S220, s22c, s23c, s31c, s32c, s33c, GridFunction::t, tc, GridFunction::u, u, U, U0, U0T, uc, uLocal, v1c, v2c, v3c, vc, wc, x, and X.

Referenced by assignInitialConditions().

int Cgsm::assignInitialConditions ( int  gfIndex)
virtual
void Cgsm::assignInterfaceBoundaryConditions ( int  current,
real  t,
real  dt 
)

Referenced by advance().

int Cgsm::assignParabolicInitialConditions ( int  gfIndex)

Assign "parabolic" initial conditions.

This function assigns the solution at t=0. It may also initialize the solution at previous times.

Parameters
gfIndex(input) : assign gf[gfIndex].u

References c1, c2, DomainSolver::cg, Parameters::dbase, DomainSolver::debug(), FOR_3D, getIndex(), DomainSolver::gf, grid, i1, I1, i2, I2, i3, I3, includeGhost, isRectangular, lambda, lambdaGrid, mg, mu, muGrid, DomainSolver::numberOfComponents(), ok, PARABOLIC, DomainSolver::parameters, DomainSolver::rho(), GridFunction::t, tc, GridFunction::u, u, U, uc, uLocal, vc, wc, x, and X.

Referenced by assignInitialConditions().

int Cgsm::assignSpecialInitialConditions ( int  gfIndex,
const EvaluationOptionsEnum  evalOption 
)

Assign "special" initial conditions.

This function assigns the solution at t=0. It may also initialize the solution at previous times.

Parameters
gfIndex(input) : assign gf[gfIndex].u
evalOption(input) : computeInitialConditions or computeErrors

References a, a0, all, assert(), assignStress, assignVelocities, c1, cb1, cb2, DomainSolver::cg, cOmega, computeErrors, computeInitialConditions, cost, cp, cPhi, cr, cs, data, Parameters::dbase, DomainSolver::debug(), ERR, FOR_3D, getIndex(), DomainSolver::gf, grid, h, h2, h3, h4, SmParameters::hemp, i1, I1, i2, I2, i3, I3, includeGhost, isRectangular, k, kappa, kappa2, kappa3, kappa4, lambda, lambdaGrid, m, m1, m2, mg, mStart, mu, muGrid, n, nk, np, ns, DomainSolver::numberOfComponents(), ok, omega, OV_ABORT(), DomainSolver::p(), DomainSolver::parameters, pc, period, printF(), DomainSolver::printP(), DomainSolver::px(), r, rad, DomainSolver::rho(), rx, rxt, ry, ryt, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, scale, sint, GridFunction::t, tc, trd, twd, GridFunction::u, u, U, U0, U0T, U0X, U0Y, U1, U2, uc, uLocal, V1, v1c, V2, v2c, v3c, VB2, VB2X, vc, vcenter, vibrationClass, W1, W2, wc, x, X, xcenter, xp1, xShift, ycenter, ySurf, z, and zcenter.

Referenced by assignInitialConditions(), and getErrors().

int Cgsm::assignTwilightZoneInitialConditions ( int  gfIndex)

Assign twilight zone initial conditions.

This function assigns the solution at t=0. It may also initialize the solution at previous times.

Parameters
gfIndex(input) : assign gf[gfIndex].u

References assert(), c, c1, c2, DomainSolver::cg, Parameters::dbase, DomainSolver::debug(), e, FOR_3D, getIndex(), DomainSolver::gf, grid, i1, I1, i2, I2, i3, I3, includeGhost, isRectangular, lambda, lambdaGrid, mg, mu, muGrid, DomainSolver::numberOfComponents(), ok, DomainSolver::parameters, DomainSolver::rho(), GridFunction::t, tc, tz, GridFunction::u, u, U, uc, uLocal, vc, wc, x, and X.

Referenced by assignInitialConditions().

int Cgsm::buildForcingOptionsDialog ( DialogData &  dialog)
protectedvirtual

Build the dialog that shows the various forcing options.

Parameters
dialog(input) : graphics dialog to use.

Reimplemented from DomainSolver.

References assert(), Parameters::dbase, forcingOption, gaussianChargeSourceParameters, gaussianSourceParameters, normalPlaneMaterialInterface, numberLinesForPML, omega, DomainSolver::parameters, pmlLayerStrength, pmlPower, slowStartInterval, and x0PlaneMaterialInterface.

int Cgsm::buildGeneralOptionsDialog ( DialogData &  dialog)
protectedvirtual

Build the dialog that shows the various general options.

Parameters
dialog(input) : graphics dialog to use.

Reimplemented from DomainSolver.

References assert(), DomainSolver::cg, Parameters::checkForFloatingPointErrors, Parameters::dbase, and DomainSolver::parameters.

int Cgsm::buildInputOutputOptionsDialog ( DialogData &  dialog)
protected

Build the input-output options dialog.

Parameters
dialog(input) : graphics dialog to use.

References assert(), Parameters::dbase, DomainSolver::debug(), elementType, frequencyToSaveProbes, DomainSolver::parameters, and probeFileName.

int Cgsm::buildParametersDialog ( DialogData &  dialog)
protected

References artificialDissipation, and assert().

Referenced by plot().

int Cgsm::buildPlotOptionsDialog ( DialogData &  dialog)
protectedvirtual
int Cgsm::buildRunTimeDialog ( )
virtual

Build the run time dialog. This dialog appears while a Domain solver is time stepping.

Reimplemented from DomainSolver.

References assert(), Parameters::dbase, DomainSolver::debug(), getAugmentedSolution(), n, nc, DomainSolver::numberOfPushButtons, DomainSolver::numberOfTextBoxes, DomainSolver::parameters, runTimeDialog, u, and v.

Referenced by plot().

int Cgsm::buildTimeSteppingDialog ( DialogData &  dialog)
protectedvirtual
int Cgsm::buildVariableDissipation ( )
void Cgsm::checkArrays ( const aString &  label)
void Cgsm::checkDisplacementAndStress ( const int  current,
real  t 
)

For the FOS, determine difference between the stress components s11c, .. and the stress computed from the displacement.

: This function can be used, for example, to check the consistency of the initial conditions for the FOS.

References all, assignStress, assignVelocities, GridFunction::cg, DomainSolver::cg, DomainSolver::current, Parameters::dbase, DomainSolver::debug(), display(), E, FOR_3D, forcingOption, getIndex(), DomainSolver::gf, grid, i, i1, I1, i2, I2, i3, I3, includeGhost, lambda, lambdaGrid, mask, MASK, maskDim0, maskDim1, maskLocal, maskp, md1, md2, mg, mu, muGrid, DomainSolver::numberOfComponents(), ok, DomainSolver::parameters, pc, printF(), DomainSolver::rho(), S, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, tc, twilightZoneForcing, GridFunction::u, u, U, uc, uLocal, useConservative, ux, uy, uz, V, v1c, v2c, v3c, vc, and wc.

Referenced by setup().

void Cgsm::computeDissipation ( int  current,
real  t,
real  dt 
)
void Cgsm::computeNumberOfStepsAndAdjustTheTimeStep ( const real &  t,
const real &  tFinal,
const real &  nextTimeToPlot,
int &  numberOfSubSteps,
real &  dtNew,
const bool &  adjustTimeStep = true 
)
virtual
int Cgsm::endTimeStep ( real &  t0,
real &  dt0,
AdvanceOptions advanceOptions 
)
virtual

End an individual time step (a time sub-step function).

Parameters
t0(input) : current time
dt0(input) : current time step
correction(input) : for predictor corrector methods this indicates the correction step number.

Reimplemented from DomainSolver.

References DomainSolver::current, DomainSolver::debug(), numberOfStepsTaken, numberOfTimeLevels, outputResultsAfterEachTimeStep(), and printF().

realCompositeGridFunction & Cgsm::getAugmentedSolution ( GridFunction gf0,
realCompositeGridFunction &  v 
)
virtual

Interface to the base class function.

Reimplemented from DomainSolver.

References assert(), DomainSolver::current, and DomainSolver::gf.

Referenced by buildRunTimeDialog(), plot(), and saveShow().

realCompositeGridFunction & Cgsm::getAugmentedSolution ( int  current,
realCompositeGridFunction &  v,
const real  t 
)
bool Cgsm::getBoundsForPML ( MappedGrid &  mg,
Index  Iv[3],
int  extra = 0 
)
void Cgsm::getEnergy ( int  current,
real  t,
real  dt 
)
void Cgsm::getErrors ( int  current,
real  t,
real  dt,
const aString &  label = nullString 
)

Determine the errors.

References all, annulusEigenfunctionInitialCondition, annulusEigenfunctionKnownSolution, assert(), assignAnnulusEigenfunction(), assignSpecialInitialConditions(), assignStress, assignVelocities, c, c1, c2, DomainSolver::cg, cgerrp, checkErrors, compareToReferenceShowFile, computeErrors, DomainSolver::current, Parameters::dbase, DomainSolver::debug(), display(), e, ERR, FOR_3D, forcingOption, gaussianIntegralInitialCondition, gaussianPlaneWave, getBoundsForPML(), getIndex(), Parameters::getKnownSolution(), DomainSolver::gf, grid, hempInitialCondition, i1, I1, i2, I2, i3, I3, initialConditionOption, isRectangular, J1, J2, J3, knownSolutionInitialCondition, knownSolutionOption, lambda, lambdaGrid, lpNorm(), mask, maskDim0, maskDim1, maskLocal, maskp, maximumError, maxNorm(), md1, md2, mg, mu, muGrid, n, nameOfReferenceShowFile, DomainSolver::numberOfComponents(), numberOfSequences, numberOfTimeLevels, ok, DomainSolver::output(), DomainSolver::parameters, planeMaterialInterfaceInitialCondition, planeWaveBoundaryForcing, planeWaveInitialCondition, planeWaveScatteredFieldInitialCondition, pmlErrorOffset, printF(), DomainSolver::printP(), referenceShowFileReader, DomainSolver::rho(), s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, solutionNorm, specialInitialCondition, squareEigenfunctionInitialCondition, tc, twilightZoneForcing, twilightZoneInitialCondition, tz, GridFunction::u, u, U, uc, uLocal, ur, v1c, v2c, v3c, vc, wc, x, and X.

Referenced by advance(), advanceFOS(), advanceMethodOfLines(), advanceSOS(), getAugmentedSolution(), plot(), printTimeStepInfo(), solve(), and updateForNewTimeStep().

int Cgsm::getForcing ( int  current,
int  grid,
realArray &  u,
real  t,
real  dt,
int  option = 0 
)
int Cgsm::getForcingOption ( const aString &  answer,
DialogData &  dialog 
)
protectedvirtual
int Cgsm::getGeneralOption ( const aString &  answer,
DialogData &  dialog 
)
protectedvirtual

: Look for a general option in the string "answer"

Parameters
answer(input) : check this command
Returns
return 1 if the command was found, 0 otherwise.

Reimplemented from DomainSolver.

References DomainSolver::cg, Parameters::checkForFloatingPointErrors, Parameters::dbase, DomainSolver::getName(), grid, DomainSolver::implicitTimeStepSolverParameters, n, DomainSolver::parameters, DomainSolver::pressureSolverParameters, and printF().

int Cgsm::getInitialConditions ( const aString &  command = nullString,
DialogData *  interface = NULL,
GUIState *  guiState = NULL,
DialogState *  dialogState = NULL 
)
virtual

Determine the type of initial conditions to assign.

Parameters
command(input) : optionally supply a command to execute. Attempt to execute the command and then return. The return value is 0 if the command was executed, 1 otherwise.
interface(input) : use this dialog. If command=="build dialog", fill in the dialog and return.
guiState(input) : use this GUIState if provided.
dialogState(input) : add items found here to the dialog.

Reimplemented from DomainSolver.

References a, annulusEigenfunctionInitialCondition, annulusEigenfunctionKnownSolution, assert(), assignInitialConditions(), betaGaussianPlaneWave, cr, DomainSolver::current, data, Parameters::dbase, DomainSolver::debug(), defaultInitialCondition, forcingOption, gaussianIntegralInitialCondition, gaussianPlaneWave, gaussianPulseInitialCondition, gaussianPulseParameters, DomainSolver::getInitialConditions(), getRayleighSpeed(), DomainSolver::gf, grid, SmParameters::hemp, hempInitialCondition, I1, I2, I3, if(), initialConditionOption, initialConditionParameters, k, knownSolutionInitialCondition, knownSolutionOption, kx, ky, kz, lambda, m, maxNumberOfGaussianPulses, mu, n, DomainSolver::name, nk, noForcing, Parameters::noInitialConditionChosen, np, ns, DomainSolver::numberOfComponents(), numberOfGaussianPulses, omega, OV_ABORT(), DomainSolver::p(), parabolicInitialCondition, DomainSolver::parameters, period, planeMaterialInterfaceInitialCondition, planeWaveInitialCondition, planeWaveScatteredFieldInitialCondition, Parameters::polynomial, printF(), Parameters::pulse, rad, DomainSolver::rho(), setupUserDefinedInitialConditions(), specialInitialCondition, squareEigenfunctionInitialCondition, trd, Parameters::trigonometric, twd, twilightZoneForcing, twilightZoneInitialCondition, GridFunction::u, u, userDefinedInitialCondition, vibrationClass, x0GaussianPlaneWave, x2, xShift, y0GaussianPlaneWave, z0GaussianPlaneWave, and zeroInitialCondition.

int Cgsm::getInputOutputOption ( const aString &  answer,
DialogData &  dialog 
)
protected

: Look for an input/output option in the string "answer"

Parameters
answer(input) : check this command
Returns
return 1 if the command was found, 0 otherwise.

References a, assert(), axis, DomainSolver::cg, Parameters::dbase, DomainSolver::debug(), elementType, frequencyToSaveProbes, grid, i, i1, i2, i3, j, mask, mg, ok, DomainSolver::parameters, printF(), probeFileName, probeGridLocation, probes, quadrilaterals, r, structuredElements, triangles, and x.

int Cgsm::getInterfaceDataOptions ( GridFaceDescriptor info,
int &  interfaceDataOptions 
) const
virtual

Return the interface data required for a given type of interface.

Parameters
info(input) : the descriptor for the interface.
interfaceDataOptions(output) : a list of items from Parameters::InterfaceDataEnum that define which data to get (or which data were set). Multiple items are chosen by bit-wise or of the different options
Returns
: the number of interface data items required. (use this to dimension arrays).
Note
: this function should be over-loaded.

Reimplemented from DomainSolver.

References axis, GridFaceDescriptor::axis, Parameters::dbase, DomainSolver::debug(), SmParameters::godunov, GridFaceDescriptor::grid, grid, Parameters::heatFluxInterface, Parameters::heatFluxInterfaceData, OV_ABORT(), DomainSolver::parameters, Parameters::positionInterfaceData, DomainSolver::printP(), side, GridFaceDescriptor::side, Parameters::tractionInterface, Parameters::tractionInterfaceData, Parameters::tractionRateInterfaceData, and Parameters::velocityInterfaceData.

void Cgsm::getLocalBoundsAndBoundaryConditions ( const realMappedGridFunction &  a,
IntegerArray &  gidLocal,
IntegerArray &  dimensionLocal,
IntegerArray &  bcLocal 
)
void Cgsm::getMaxDivAndCurl ( const int  current,
real  t,
realCompositeGridFunction *  pu = NULL,
int  component = 0,
realCompositeGridFunction *  pvor = NULL,
int  vorComponent = 0,
realCompositeGridFunction *  pDensity = NULL,
int  rhoComponent = 0,
bool  computeMaxNorms = true 
)
int Cgsm::getMethodName ( aString &  methodName)
int Cgsm::getPlotOption ( const aString &  answer,
DialogData &  dialog 
)
protectedvirtual
real Cgsm::getTimeStep ( GridFunction gf)
virtual
int Cgsm::getTimeSteppingOption ( const aString &  answer,
DialogData &  dialog 
)
protectedvirtual
void Cgsm::getUt ( GridFunction cgf,
const real &  t,
RealCompositeGridFunction &  ut,
real  tForce 
)
virtual

: compute u.t or u.tt for a method of lines time-stepper

Reimplemented from DomainSolver.

References deltaT, DomainSolver::dt, getUtFOS(), getUtSOS(), and DomainSolver::parameters.

Referenced by advanceMethodOfLines().

void Cgsm::getUtFOS ( GridFunction cgf,
const real &  t,
RealCompositeGridFunction &  ut,
real  tForce 
)

Compute du/dt for the first-order-system.

References advanceFOS(), assert(), deltaT, DomainSolver::dt, DomainSolver::gf, i, and DomainSolver::numberOfGridFunctionsToUse.

Referenced by getUt().

void Cgsm::getUtSOS ( GridFunction cgf,
const real &  t,
RealCompositeGridFunction &  ut,
real  tForce 
)

Compute u.tt for the second-order-system.

References advanceSOS(), assert(), deltaT, DomainSolver::dt, DomainSolver::gf, i, and DomainSolver::numberOfGridFunctionsToUse.

Referenced by getUt().

void Cgsm::getVelocityAndStress ( const int  current,
real  t,
realCompositeGridFunction *  pv = NULL,
int  vComponent = 0,
realCompositeGridFunction *  ps = NULL,
int  sComponent = 0,
bool  computeMaxNorms = true 
)

Compute the velocity and stress by differencing the displacements.

/pv,vComponent (input) : save the velocity in 'vComponent' if this pointer is non-NULL. /ps,sComponent (input) : save the stress starting at 'sComponent' if this pointer is non-NULL.

References all, DomainSolver::cg, DomainSolver::current, Parameters::dbase, DomainSolver::debug(), deltaT, display(), E, FOR_3D, getBoundsForPML(), getIndex(), DomainSolver::gf, grid, i1, I1, i2, I2, i3, I3, includeGhost, lambda, lambdaGrid, mask, MASK, maskDim0, maskDim1, maskLocal, maskp, md1, md2, mg, mu, muGrid, DomainSolver::numberOfComponents(), numberOfTimeLevels, ok, OV_ABORT(), DomainSolver::parameters, printF(), DomainSolver::rho(), s, S, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, tc, GridFunction::u, u, U, uc, uLocal, UP, useConservative, ux, uy, uz, v, V, vc, and wc.

Referenced by getAugmentedSolution().

void Cgsm::initializeInterfaces ( )
void Cgsm::initializeKnownSolution ( )
int Cgsm::initializeRadiationBoundaryConditions ( )
int Cgsm::initializeTimeStepping ( real &  t0,
real &  dt0 
)
virtual

Initialize the time stepping (a time sub-step function).

Parameters
t0(input) : current time
dt0(input) : current time step

Reimplemented from DomainSolver.

References applyBoundaryConditions(), assert(), DomainSolver::current, DomainSolver::debug(), DomainSolver::gf, outputResultsAfterEachTimeStep(), printF(), and updateForNewTimeStep().

virtual int Cgsm::interfaceRightHandSide ( InterfaceOptionsEnum  option,
int  interfaceDataOptions,
GridFaceDescriptor info,
GridFaceDescriptor gfd,
int  gfIndex,
real  t 
)
virtual

Reimplemented from DomainSolver.

int Cgsm::outputResults ( int  current,
real  t,
real  dt 
)
int Cgsm::outputResultsAfterEachTimeStep ( int  current,
real  t,
real  dt,
int  stepNumber 
)
int Cgsm::plot ( int  current,
real  t,
real  dt 
)
int Cgsm::printMemoryUsage ( FILE *  file = stdout)
virtual

Output information about the memory usage.

This information is normally printed at the end of the run.

Parameters
file(input) : output to this file.

Reimplemented from DomainSolver.

References DomainSolver::cg, cgdissipation, cgerrp, cgop, Parameters::dbase, DomainSolver::debug(), DomainSolver::getGridInfo(), DomainSolver::gf, grid, i, DomainSolver::numberOfComponents(), numberOfTimeLevels, DomainSolver::parameters, DomainSolver::sizeOf(), and sizeOfLocalArraysForAdvance.

void Cgsm::printTimeStepInfo ( const int &  step,
const real &  t,
const real &  cpuTime 
)
virtual

Print time-step information about the current solution in a nicely formatted way.

Parameters
step(input) : current step number.
t(input) : time.
cpuTime(input) : current cpu time.

Reimplemented from DomainSolver.

References DomainSolver::current, deltaT, getErrors(), and outputResults().

Referenced by solve().

int Cgsm::project ( int  numberOfStepsTaken,
int  current,
real  t,
real  dt 
)
int Cgsm::saveSequenceInfo ( real  t0,
RealArray &  sequenceData 
)
protected
int Cgsm::saveSequencesToShowFile ( )
protectedvirtual
void Cgsm::saveShow ( GridFunction gf0)
virtual
void Cgsm::saveShowFileComments ( Ogshow &  show)
virtual

: Set the titles and labels that go on the show file output

Reimplemented from DomainSolver.

References Parameters::dbase, getMethodName(), i, and DomainSolver::parameters.

Referenced by saveShow().

int Cgsm::setBoundaryCondition ( aString &  answer,
IntegerArray &  originalBoundaryCondition 
)
int Cgsm::setParametersInteractively ( )

Set parameters, boundary conditions, forcings, initial conditions etc. that define the problem.

References initializeRadiationBoundaryConditions(), and DomainSolver::setParametersInteractively().

Referenced by main().

int Cgsm::setPlotTitle ( const real &  t,
const real &  dt 
)
virtual

Set the plot titles for interactive plotting.

Parameters
t(input) : current time
dt(input) : current time step

Reimplemented from DomainSolver.

References Parameters::dbase, and DomainSolver::parameters.

void Cgsm::setup ( const real &  time = 0.)
protectedvirtual

The function is called after the parameters have been assigned (called by setParametersInteractively). This function will output the header information that summarizes the problem being solved and the values of the various parameters.

Parameters
time(input) : current time.

Reimplemented from DomainSolver.

References Parameters::bcVariesInSpace(), DomainSolver::buildAmrGridsForInitialConditions(), DomainSolver::cg, cgop, checkDisplacementAndStress(), DomainSolver::current, Parameters::dbase, DomainSolver::gf, DomainSolver::imaginaryPartOfEigenvalue, n, numberOfTimeLevels, DomainSolver::outputHeader(), DomainSolver::parameters, DomainSolver::realPartOfEigenvalue, setupGridFunctions(), DomainSolver::setVariableMaterialProperties(), DomainSolver::timeIndependentBoundaryConditions(), and GridFunction::u.

int Cgsm::setupGridFunctions ( )
virtual
int Cgsm::setupGrids ( )

Setup and initialization. Build the grid and solution fields.

References DomainSolver::cg, Parameters::dbase, dw, grid, kz, lambda, lambdaGrid, mg, mu, muGrid, orderOfArtificialDissipation, DomainSolver::parameters, printF(), R, useConservative, and verifyUnstructuredConnectivity().

Referenced by Cgsm().

int Cgsm::setupPde ( aString &  reactionName,
bool  restartChosen,
IntegerArray &  originalBoundaryCondition 
)
virtual
int Cgsm::setupUserDefinedForcing ( )
virtual
int Cgsm::setupUserDefinedInitialConditions ( )
virtual
void Cgsm::smoothDivergence ( realCompositeGridFunction &  u,
const int  numberOfSmooths 
)
int Cgsm::solve ( )
virtual
int Cgsm::startTimeStep ( real &  t0,
real &  dt0,
int &  currentGF,
int &  nextGF,
AdvanceOptions advanceOptions 
)
virtual

Start an individual time step (a time sub-step function).

Parameters
t0(input) : current time
dt0(input) : current time step
correction(input) : for predictor corrector methods this indicates the correction step number.
currentGF(output) : points to the grid-function holding the current solution (time t0)
nextGF(output) : points to the grid-function holding the new solution (time t0+dt0)
advanceOptions.numberOfCorrectorSteps(output) : return the number of corrector steps that will be used.

Reimplemented from DomainSolver.

References DomainSolver::current, DomainSolver::debug(), AdvanceOptions::gridChanges, AdvanceOptions::noChangeToGrid, AdvanceOptions::numberOfCorrectorSteps, numberOfTimeLevels, and printF().

int Cgsm::takeTimeStep ( real &  t0,
real &  dt0,
int  correction,
AdvanceOptions advanceOptions 
)
virtual

Take a single time step (a time sub-step function).

Parameters
t0(input) : current time
dt0(input) : current time step
correction(input) : for predictor corrector methods this indicates the correction step number.
advanceOptions(input) : additional options that adjust the behaviour of this function. advanceOptions.takeTimeStepOption can be used to not apply or only apply the boundary conditions.

Reimplemented from DomainSolver.

References advance(), applyBoundaryConditions(), AdvanceOptions::applyBoundaryConditionsOnly, DomainSolver::current, Parameters::dbase, DomainSolver::debug(), deltaT, DomainSolver::dt, numberOfTimeLevels, DomainSolver::parameters, DomainSolver::printP(), AdvanceOptions::takeStepAndApplyBoundaryConditions, AdvanceOptions::takeStepButDoNotApplyBoundaryConditions, and AdvanceOptions::takeTimeStepOption.

int Cgsm::updateForAdaptiveGrids ( CompositeGrid &  cg)
virtual
int Cgsm::updateForNewTimeStep ( GridFunction cgf,
real &  dt 
)
protected
int Cgsm::updateGeometryArrays ( GridFunction cgf)
virtual

Update geometry arrays when the grid has changed (called by adaptGrids for example).

Parameters
cgf(input) :

Reimplemented from DomainSolver.

References GridFunction::cg, DomainSolver::cg, DomainSolver::debug(), dxMinMax, DomainSolver::imaginaryPartOfEigenvalue, DomainSolver::printP(), DomainSolver::realPartOfEigenvalue, and DomainSolver::updateGeometryArrays().

int Cgsm::updateProjectionEquation ( )
int Cgsm::userDefinedBoundaryValues ( const real &  t,
GridFunction gf0,
const int &  grid,
int  side0 = -1,
int  axis0 = -1,
ForcingTypeEnum  forcingType = computeForcing 
)
virtual

Assign user specific values for boundary conditions.

The user may fill in the boundaryData array with right-hand-side values for boundary conditions. The user is also required to provide the time derivative of the boundary values.

Note
This function shows examples of applying a user defined boundary condition as well as adding a time dependence to some pre-defined boundary conditions.
Parameters
t(input) : current time.
u(input) : the current solution.
grid(input): the component grid we are assigning.
forcingType(input) : if forcingType==computeForcing then return the rhs for the boundary condition; if forcingType==computeTimeDerivativeOfForcing then return the first time derivative of the forcing.

Reimplemented from DomainSolver.

References a, assert(), axis, Parameters::dbase, display(), FOR_3D, fx, Parameters::getBoundaryData(), Parameters::getUserBoundaryConditionParameters(), grid, Parameters::gridIsMoving(), i1, i2, i3, includeGhost, mg, normal, ok, omega, DomainSolver::p(), DomainSolver::parameters, pc, printF(), r, rad, s11c, s12c, s13c, s21c, s22c, s23c, s31c, s32c, s33c, scale, side, tc, theta, tz, GridFunction::u, u, uc, uLocal, Parameters::userBcType(), v1c, v2c, v3c, vc, wc, and x.

Referenced by applyBoundaryConditions().

int Cgsm::userDefinedForcing ( realArray &  f,
const realMappedGridFunction &  u,
int  iparam[],
real  rparam[] 
)
virtual
void Cgsm::userDefinedForcingCleanup ( )
virtual

This routine is called when Cgsm is finished and can be used to clean up memory.

Reimplemented from DomainSolver.

References Parameters::dbase, and DomainSolver::parameters.

int Cgsm::userDefinedInitialConditions ( CompositeGrid &  cg,
realCompositeGridFunction &  u 
)
virtual
void Cgsm::userDefinedInitialConditionsCleanup ( )
virtual

This routine is called when Cgsm is finished with the initial conditions and can be used to clean up memory.

Reimplemented from DomainSolver.

References Parameters::dbase, DomainSolver::parameters, DomainSolver::printP(), and DomainSolver::userDefinedInitialConditionsCleanup().

bool Cgsm::usingPMLBoundaryConditions ( ) const
void Cgsm::writeParameterSummary ( FILE *  file)
protectedvirtual

Member Data Documentation

real Cgsm::artificialDissipation
int Cgsm::artificialDissipationInterval
real Cgsm::betaGaussianPlaneWave

Referenced by Cgsm(), and getInitialConditions().

real Cgsm::c1
real Cgsm::c2
realCompositeGridFunction* Cgsm::cgdissipation
realCompositeGridFunction* Cgsm::cgerrp
realCompositeGridFunction* Cgsm::cgfn

Referenced by Cgsm(), and ~Cgsm().

CompositeGridOperators* Cgsm::cgop
bool Cgsm::checkErrors
bool Cgsm::compareToReferenceShowFile
bool Cgsm::computeEnergy
int Cgsm::currentFn

Referenced by Cgsm().

real Cgsm::cylinderAxisEnd

Referenced by Cgsm(), and setupGridFunctions().

real Cgsm::cylinderAxisStart

Referenced by Cgsm(), and setupGridFunctions().

real Cgsm::cylinderRadius

Referenced by Cgsm().

real Cgsm::deltaT
real Cgsm::divergenceDamping

Referenced by Cgsm(), getTimeSteppingOption(), and plot().

real Cgsm::divUMax
real Cgsm::dScale
RealArray Cgsm::dxMinMax
ElementTypeEnum Cgsm::elementType
ForcingEnum Cgsm::forcingOption
int Cgsm::frequencyToSaveInShowFile

Referenced by Cgsm(), and solve().

int Cgsm::frequencyToSaveProbes
real Cgsm::gaussianChargeSourceParameters[maxNumberOfGaussianChargeSources][9]
real Cgsm::gaussianPulseParameters[maxNumberOfGaussianPulses][6]
real Cgsm::gaussianSourceParameters[5]
real Cgsm::gradUMax
InitialConditionEnum Cgsm::initialConditionOption
real Cgsm::initialConditionParameters[10]
real Cgsm::initialTotalEnergy

Referenced by Cgsm(), getEnergy(), and outputResults().

std::vector<InterfaceInfo> Cgsm::interfaceInfo

Referenced by initializeInterfaces().

realCompositeGridFunction* Cgsm::knownSolution
enum Cgsm::KnownSolutionEnum Cgsm::knownSolutionOption
int Cgsm::kx
int Cgsm::ky
int Cgsm::kz
int Cgsm::materialInterfaceOption
RealArray Cgsm::maximumError

Referenced by getErrors(), and outputResults().

aString Cgsm::movieFileName

Referenced by plot().

int Cgsm::movieFrame

Referenced by Cgsm(), and plot().

int Cgsm::myid
aString Cgsm::nameOfGridFile
aString Cgsm::nameOfReferenceShowFile
real Cgsm::normalPlaneMaterialInterface[3]
int Cgsm::numberLinesForPML
int Cgsm::numberOfFunctions

Referenced by advanceMethodOfLines(), and Cgsm().

int Cgsm::numberOfGaussianChargeSources

Referenced by Cgsm(), and getForcingOption().

int Cgsm::numberOfGaussianPulses

Referenced by Cgsm(), and getInitialConditions().

int Cgsm::numberOfIterationsForInterfaceBC
int Cgsm::numberOfSequences
int Cgsm::numberOfStepsTaken
int Cgsm::numberOfTimeLevels
real Cgsm::omegaForInterfaceIteration
int Cgsm::orderOfArtificialDissipation
int Cgsm::plotChoices

Referenced by Cgsm(), and plot().

bool Cgsm::plotDissipation
bool Cgsm::plotDivergence
bool Cgsm::plotErrors
int Cgsm::plotOptions

Referenced by Cgsm(), plot(), and solve().

bool Cgsm::plotRho

Referenced by Cgsm().

bool Cgsm::plotScatteredField
bool Cgsm::plotStress
bool Cgsm::plotTotalField
bool Cgsm::plotVelocity
bool Cgsm::plotVorticity
int Cgsm::pmlErrorOffset

Referenced by Cgsm(), and getErrors().

real Cgsm::pmlLayerStrength
int Cgsm::pmlPower
DialogData * Cgsm::pParametersDialog

Referenced by plot().

DialogData* Cgsm::pPlotOptionsDialog

Referenced by plot().

FILE* Cgsm::probeFile
aString Cgsm::probeFileName
ArraySimple<int> Cgsm::probeGridLocation
ArraySimple<real> Cgsm::probes
int Cgsm::radbcAxis[2]
int Cgsm::radbcGrid[2]
int Cgsm::radbcSide[2]
real Cgsm::radiusForCheckingErrors
ShowFileReader* Cgsm::referenceShowFileReader

Referenced by Cgsm(), getErrors(), and ~Cgsm().

GUIState* Cgsm::runTimeDialog

Referenced by buildRunTimeDialog(), Cgsm(), plot(), and ~Cgsm().

bool Cgsm::saveDivergenceInShowFile

Referenced by Cgsm().

bool Cgsm::saveErrorsInShowFile

Referenced by Cgsm().

bool Cgsm::saveStressInShowFile

Referenced by Cgsm().

bool Cgsm::saveVelocityInShowFile

Referenced by Cgsm().

RealArray Cgsm::sequence
int Cgsm::sequenceCount
int Cgsm::showFileFrameForGrid

Referenced by Cgsm(), and saveShow().

real Cgsm::sizeOfLocalArraysForAdvance
real Cgsm::slowStartInterval
RealArray Cgsm::solutionNorm
RealArray Cgsm::timeSequence
real Cgsm::totalEnergy

Referenced by Cgsm(), getEnergy(), and outputResults().

int Cgsm::totalNumberOfArrays

Referenced by Cgsm(), and checkArrays().

bool Cgsm::useConservative
bool Cgsm::useStreamMode

Referenced by Cgsm().

bool Cgsm::useVariableDissipation
realCompositeGridFunction* Cgsm::variableDissipation
real Cgsm::vorUMax

Referenced by Cgsm(), getMaxDivAndCurl(), and plot().

realArray* Cgsm::vpml
real Cgsm::x0GaussianPlaneWave

Referenced by Cgsm(), and getInitialConditions().

real Cgsm::x0PlaneMaterialInterface[3]
real Cgsm::y0GaussianPlaneWave

Referenced by Cgsm(), and getInitialConditions().

real Cgsm::z0GaussianPlaneWave

Referenced by Cgsm(), and getInitialConditions().


The documentation for this class was generated from the following files: