|
IFEM 90A354
|
Driver class for plane-decoupled 3D problems. More...
#include <SIMSemi3D.h>


Public Types | |
| enum | { dimension = 2 } |
| Enum announcing the dimensionality. | |
| typedef PlaneSolver::SetupProps | SetupProps |
| Convenience type. | |
Public Types inherited from SIMdependency | |
| typedef std::vector< ASMbase * > | PatchVec |
| Spline patch container. | |
Public Member Functions | |
| SIMSemi3D (const SetupProps &props_) | |
| The constructor initializes the setup properties. | |
| virtual | ~SIMSemi3D () |
| The destructor deletes the plane-wise sub-step solvers. | |
| bool | advanceStep (TimeStep &tp) |
| Advances the time step one step forward. | |
| int | getBDForder () const |
| Returns the order of the BDF scheme. | |
| int | getDumpInterval () const |
| Returns the visualization dump interval. | |
| void | printFinalNorms (const TimeStep &) |
| Dummy method. | |
| bool | preprocess (const std::vector< int > &={}, bool=false) override |
| Performs some pre-processing tasks on the FE model. | |
| void | grabPlaneNodes () |
| Get FSI nodes for all planes. | |
| std::string | getName () const override |
| Returns the name of this simulator (for use in the HDF5 export). | |
| void | registerFields (const DataExporter &exporter) |
| Adds fields to a data exporter. | |
| bool | init (const TimeStep &tp) |
| Initializes for time-dependent simulation. | |
| bool | saveModel (char *, int &, int &) |
| Dummy method (VTF export is not supported). | |
| bool | saveStep (const TimeStep &tp, int &) |
| Dumps all registered fields for each plane. | |
| bool | serialize (std::map< std::string, std::string > &) |
| Dummy method, no serialization support. | |
| bool | deSerialize (const std::map< std::string, std::string > &) |
| Dummy method, no deserialization support. | |
| bool | solveStep (TimeStep &tp) |
| Solves the nonlinear equations by Newton-Raphson iterations. | |
| bool | setInitialConditions () |
| Sets the initial conditions. | |
| void | initSystem () |
| Initialize the FEM system. | |
| bool | read (const char *fileName) override |
| Reads model data from the specified input file. | |
| bool | parse (const tinyxml2::XMLElement *elem) override |
| Parses a data section from an XML element. | |
| template<class T > | |
| void | registerDependency (SIMSemi3D< T > *sim, const std::string &name, short int nvc, const PatchVec &patches, char diffBasis=0, int component=0) |
| Registers a dependency on a field from another SIM object. | |
| size_t | getNoSpaceDim () const override |
| Returns the spatial dimension of plane solvers. | |
| size_t | getNoPlanes () const |
| Returns the number of plane solvers. | |
| PlaneSolver * | getPlane (size_t i) |
| Returns a pointer to a given plane solver. | |
| const std::vector< PlaneSolver * > & | getPlanes () const |
| Returns a const reference to the plane solvers. | |
| size_t | getStartContext () const |
| Returns the context of the first plane on this process. | |
| size_t | getProcsPerPlane () const |
| Returns the number or processes participating in each planar solve. | |
| int | getPlaneNodes (int plane) const |
| Returns the number of FSI nodes for a plane. | |
| char | getDirection () const |
| Returns the (unoriented) normal direction of the planes. | |
| VTF * | getVTF () |
| Dummy method. | |
| void | setVTF (VTF *) |
| Dummy method. | |
| Vec3 | getForce (int) const |
| Dummy method. | |
| const PatchVec & | getFEModel () |
| Dummy method. | |
| void | setupDependencies () |
| Setup inter-SIM dependencies. | |
| bool | updateALE () |
| Updating the grid in an ALE solver. | |
| int | getLocalNode (int) const |
| Dummy method. | |
| int | getGlobalNode (int) const |
| Dummy method. | |
| int | getNoBasis () const |
| Returns the number of bases in the model. | |
| size_t | getNoSolutions () const |
| Returns the number of solution vectors. | |
| 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 void | registerDependency (SIMdependency *sim, const std::string &name, short int nvc, const PatchVec &patches, char diffBasis=0, int component=1) |
| Registers a dependency on a field from another SIM object. | |
| virtual void | registerDependency (SIMdependency *sim, const std::string &name, short int nvc, const PatchVec &patches, const int *MADOF) |
| Registers a dependency on a field from another SIM object. | |
| virtual void | registerDependency (SIMdependency *sim, const std::string &name, short int nvc=1) |
| Registers a dependency on a field from another SIM object. | |
Public Member Functions inherited from SIMadmin | |
| virtual | ~SIMadmin () |
| Empty destructor. | |
| virtual bool | preprocessC (const IntVec &, bool, double=0.0) |
| 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 SIMdependency | |
| virtual | ~SIMdependency () |
| Empty destructor. | |
| bool | fillField (const std::string &name, const std::vector< double > &values) |
| Initializes the nodal vector of named field in this SIM. | |
| virtual std::vector< double > * | getField (const std::string &name) |
| Returns the nodal vector of named field in this SIM. | |
| virtual const std::vector< double > * | getField (const std::string &name) const |
| Returns the nodal vector of named field in this SIM. | |
| const std::vector< double > * | getDependentField (const std::string &name) const |
| Returns the nodal vector of named field in a dependent SIM. | |
| ASMbase * | getDependentPatch (const std::string &name, int pindx) const |
| Returns a spline patch associated with a dependent field. | |
| void | registerField (const std::string &name, const std::vector< double > &vec) |
| Registers a named field with associated nodal vector in this SIM. | |
| virtual bool | hasIC (const std::string &) const |
| Checks whether a named initial condition is present. | |
Protected Attributes | |
| std::vector< PlaneSolver * > | m_planes |
| Planar solvers. | |
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. | |
Private Attributes | |
| size_t | startCtx |
| Context for first plane on this process. | |
| size_t | planes |
| Total number of planes. | |
| size_t | procs_per_plane |
| Number of processes per plane. | |
| int | output_plane |
| Plane to print to screen for (-1 for all) | |
| char | direction |
| (Unoriented) normal direction of plane | |
| std::string | log_files |
| Log file prefix for planes. | |
| std::vector< int > | planeNodes |
| FSI nodes for all planes. | |
| SetupProps | props |
| Setup properties to configure planar solvers. | |
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 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 Member Functions inherited from SIMdependency | |
| SIMdependency () | |
| The constructor is protected to allow sub-class instances only. | |
| bool | extractPatchDependencies (IntegrandBase *problem, const PatchVec &model, size_t pindx) const |
| Extracts local solution vector(s) for all dependent fields. | |
Driver class for plane-decoupled 3D problems.
|
inlineoverridevirtual |
Returns the name of this simulator (for use in the HDF5 export).
Implements SIMdependency.
|
inlineoverridevirtual |
Returns the spatial dimension of plane solvers.
Implements SIMdependency.
|
virtual |
Parses a data section from an input stream.
Reimplemented from SIMadmin.
|
virtual |
Parses a data section from an XML document.
Reimplemented from SIMadmin.
|
inlineoverridevirtual |
Parses a data section from an XML element.
| [in] | elem | The XML element to parse |
Reimplemented from SIMadmin.
References IFEM::cout, SIMSemi3D< PlaneSolver >::direction, utl::getAttribute(), SIMSemi3D< PlaneSolver >::log_files, SIMadmin::nProc, SIMadmin::opt, SIMSemi3D< PlaneSolver >::output_plane, SIMoptions::parseOutputTag(), SIMSemi3D< PlaneSolver >::planes, and SIMSemi3D< PlaneSolver >::procs_per_plane.
|
inlineoverridevirtual |
Performs some pre-processing tasks on the FE model.
Reimplemented from SIMadmin.
|
inlineoverridevirtual |
Reads model data from the specified input file.
| [in] | fileName | Name of input file to read data from |
Reimplemented from SIMadmin.
References SIMSemi3D< PlaneSolver >::log_files, SIMSemi3D< PlaneSolver >::m_planes, SIMadmin::myPid, SIMadmin::nProc, SIMSemi3D< PlaneSolver >::output_plane, plane_log_files, SIMSemi3D< PlaneSolver >::planes, SIMSemi3D< PlaneSolver >::procs_per_plane, SIMSemi3D< PlaneSolver >::props, SIMadmin::read(), and SIMSemi3D< PlaneSolver >::startCtx.
Referenced by SolverConfigurator< SIMSemi3D< PlaneSolver > >::setup().
|
virtual |
Registers a dependency on a field from another SIM object.
| [in] | sim | The SIM object holding the field we depend on |
| [in] | name | Name of field we depend on |
| [in] | nvc | Number of components in field |
| [in] | patches | The geometry the field is defined over |
| [in] | diffBasis | If non-null, use diffBasis base from patch vector |
| [in] | component | Component to use from field |
Reimplemented from SIMdependency.
|
virtual |
Registers a dependency on a field from another SIM object.
| [in] | sim | The SIM object holding the field we depend on |
| [in] | name | Name of field we depend on |
| [in] | nvc | Number of components in field |
| [in] | patches | The geometry the field is defined over |
| [in] | MADOF | The MADOF array to associate with this field |
Reimplemented from SIMdependency.
|
virtual |
Registers a dependency on a field from another SIM object.
| [in] | sim | The SIM object holding the field we depend on |
| [in] | name | Name of field we depend on |
| [in] | nvc | Number of components in field |
Reimplemented from SIMdependency.
|
inline |
Registers a dependency on a field from another SIM object.
| [in] | sim | The SIM object holding the field we depend on |
| [in] | name | Name of field we depend on |
| [in] | nvc | Number of components in field |
| [in] | patches | The geometry the field is defined over |
| [in] | diffBasis | Different basis for the SIM class and the field |
| [in] | component | Component to use from field |
References SIMSemi3D< PlaneSolver >::getPlane(), and SIMSemi3D< PlaneSolver >::m_planes.