|
IFEM 90A354
|
Adaptive simulator driver using the ISolver interface. More...
#include <SIMSolverAdap.h>


Public Member Functions | |
| AdaptiveISolver (T1 &sim, bool sa) | |
| The constructor forwards to the parent class constructor. | |
| bool | adaptMesh (int iStep, std::streamsize outPrec=0) |
| Refines the current mesh based on the element norms. | |
Public Member Functions inherited from AdaptiveSIM | |
| AdaptiveSIM (SIMoutput &sim, bool sa=true) | |
| The constructor initializes default adaptation parameters. | |
| bool | initAdaptor (size_t normGroup=0) |
| Initializes the projs and projd arrays. | |
| bool | solveStep (const char *inputfile, int iStep, bool withRF=false, std::streamsize precision=6) |
| Assembles and solves the linear FE equations on current mesh. | |
| bool | adaptMesh (int iStep, std::streamsize outPrec=0) |
| Refines the current mesh based on the element norms. | |
| bool | adaptMesh (int iStep, Vectors &sol, std::streamsize outPrec=0) |
| Refines the current mesh based on the element norms. | |
| bool | writeGlv (const char *infile, int iStep) |
| Writes current mesh and results to the VTF-file. | |
| const Vector & | getSolution (size_t idx=0) const |
| Accesses the solution of the linear system. | |
| const Vector & | getProjection (size_t idx=0) const |
| Accesses the projections. | |
| const Vectors & | getProjections () const |
| Access all the projections. | |
| const Matrix & | getEnorm () const |
| Access the calculated element-wise norms. | |
| virtual bool | parse (char *keyWord, std::istream &is) |
| Parses a data section from an input stream. | |
| virtual bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
| virtual bool | preprocessC (const IntVec &ignored, bool fixDup, double time0) |
| Performs some pre-processing tasks on the FE model. | |
Public Member Functions inherited from SIMadmin | |
| virtual | ~SIMadmin () |
| Empty destructor. | |
| virtual bool | read (const char *fileName) |
| Reads model data from the specified input file *fileName. | |
| virtual bool | preprocess (const IntVec &ignored={}, bool fixDup=false) |
| Performs some pre-processing tasks on the FE model. | |
| const ProcessAdm & | getProcessAdm () const |
| Returns the parallel process administrator. | |
| int | getGlobalProcessID () const |
| Returns the global process ID. | |
| const std::string & | getHeading () const |
| Returns the simulator heading. | |
| void | setHeading (const std::string &heading) |
| Defines the simulator heading. | |
| void | printHeading (int &supStep) const |
| Prints the heading of this simulator, if any, to IFEM::cout. | |
Public Member Functions inherited from XMLInputBase | |
| bool | readXML (const char *fileName, bool verbose=true) |
| Reads an XML input file. | |
| bool | loadXML (const char *xml) |
| Loads data from an XML-formatted text string. | |
Public Member Functions inherited from AdaptiveSetup | |
| AdaptiveSetup (SIMoutput &sim, bool sa=true) | |
| The constructor initializes default adaptation parameters. | |
| virtual | ~AdaptiveSetup () |
| Empty destructor. | |
| void | setAdaptationNorm (size_t g, size_t i=0) |
| Sets the norm group/index of the norm to base mesh adaptation on. | |
| bool | initPrm (size_t normGroup) |
| Initializes the norm group parameters. | |
| int | calcRefinement (LR::RefineData &prm, int iStep, const Vectors &gNorm, const Vector &refIn, int currDofs=-1) const |
| Calculates mesh refinement control data based on error estimates. | |
| bool | parse (char *keyWord, std::istream &is) |
| Parses a data section from an input stream. | |
| bool | parse (const tinyxml2::XMLElement *elem) |
| Parses a data section from an XML document. | |
| void | printNorms (const Vectors &gNorm, const Vectors &dNorm, const Matrix &eNorm, size_t w=36, bool printModelNorms=true) const |
| Prints out global norms to the log stream. | |
| bool | writeMesh (int iStep) const |
| Dumps current mesh to external file(s) for inspection. | |
| size_t | eIdx () const |
| Returns the row-index of the element norm to use for adaptation. | |
Protected Member Functions | |
| virtual void | prepareAdapt () |
| Hook for preparation steps before mesh adaptation. | |
| virtual void | prepareSolutionTransfer () |
| Hook for preparation steps before solution transfer. | |
| bool | assembleAndSolveSystem () override |
| Assembles and solves the linearized FE equation system. | |
| bool | savePoints (int iStep) const override |
| Saves point results to output file for a given refinement step. | |
Protected Member Functions inherited from SIMadmin | |
| SIMadmin (const char *heading=nullptr) | |
| The default constructor initializes the process administrator. | |
| SIMadmin (SIMadmin &anotherSIM) | |
| Copy constructor. | |
Protected Member Functions inherited from XMLInputBase | |
| const tinyxml2::XMLElement * | loadFile (tinyxml2::XMLDocument &doc, const char *fileName, bool verbose=false) |
| Loads an XML input file into a tinyxml2::XMLDocument object. | |
| virtual const char ** | getPrioritizedTags () const |
| Returns a list of prioritized XML-tags. | |
Protected Attributes | |
| T1 & | model |
| Reference to the actual sim. | |
| Vectors | transfered |
| Transfered solutions. | |
Protected Attributes inherited from AdaptiveSIM | |
| Vectors | solution |
| All solutions (including Galerkin projections) | |
Protected Attributes inherited from SIMadmin | |
| ProcessAdm | adm |
| Parallel administrator. | |
| int | myPid |
| Processor ID in parallel simulations. | |
| int | nProc |
| Number of processors in parallel simulations. | |
| std::string | myHeading |
| Heading written before reading the input file. | |
Protected Attributes inherited from AdaptiveSetup | |
| SIMoutput & | model |
| The isogeometric FE model. | |
| size_t | adaptor |
| Norm group to base the mesh adaptation on. | |
| size_t | adNorm |
| Which norm to base the mesh adaptation on. | |
| size_t | eRow |
| Row-index in eNorm of the norm to use for adaptation. | |
| double | rCond |
| Actual reciprocal condition number of the last mesh. | |
Additional Inherited Members | |
Public Attributes inherited from SIMadmin | |
| SIMoptions & | opt |
| Simulation control parameters. | |
Static Public Attributes inherited from SIMadmin | |
| static int | msgLevel = 2 |
| Controls the console output amount during solving. | |
Protected Types inherited from SIMadmin | |
| using | IntVec = std::vector< int > |
| Convenience alias. | |
Protected Types inherited from AdaptiveSetup | |
| enum | Threshold { NONE =0 , MAXIMUM , AVERAGE , MINIMUM , TRUE_BETA , DORFEL , SYMMETRIZED } |
| Enum defining the refinement threshold flag values. | |
| using | DblIdx = std::pair< double, int > |
| Element error and associated index. | |
Static Protected Member Functions inherited from AdaptiveSetup | |
| static ErrorInfo | errorLimits (const std::vector< DblIdx > &errors, const double beta, const Threshold threshold) |
| Calculate error limits for a vector of errors. | |
Adaptive simulator driver using the ISolver interface.
|
inline |
Refines the current mesh based on the element norms.
| [in] | iStep | Refinement step counter |
| [in] | outPrec | Number of digits after the decimal point in norm print |
References AdaptiveSIM::adaptMesh(), AdaptiveISolver< T1, SolutionTransfer >::prepareAdapt(), AdaptiveSIM::solution, and AdaptiveISolver< T1, SolutionTransfer >::transfered.
|
inlineoverrideprotectedvirtual |
Assembles and solves the linearized FE equation system.
Reimplemented from AdaptiveSIM.
References AdaptiveISolver< T1, SolutionTransfer >::model, AdaptiveISolver< T1, SolutionTransfer >::prepareSolutionTransfer(), AdaptiveSIM::solution, and AdaptiveISolver< T1, SolutionTransfer >::transfered.
|
inlineoverrideprotectedvirtual |
Saves point results to output file for a given refinement step.
| [in] | iStep | Refinement step counter |
Reimplemented from AdaptiveSIM.
References AdaptiveISolver< T1, SolutionTransfer >::model.