xc
|
Used when performing a domain decomposition analysis. More...
#include <DomainDecompositionAnalysis.h>
Public Member Functions | |
virtual void | clearAll (void) |
Clears all object members (constraint handler, analysis model,...). | |
virtual int | initialize (void) |
virtual int | domainChanged (void) |
Method used to inform the object that the domain has changed. | |
virtual bool | doesIndependentAnalysis (void) |
virtual int | analyze (double dT) |
Performs the analysis. More... | |
virtual int | getNumExternalEqn (void) |
Returns the number of external equations. More... | |
virtual int | getNumInternalEqn (void) |
Returns the number of internal equations. | |
virtual int | newStep (double dT) |
virtual int | computeInternalResponse (void) |
A method which invokes solveCurrentStep() on theAlgorithm . | |
virtual int | formTangent (void) |
Assembles the tangent stiffness matrix. More... | |
virtual int | formResidual (void) |
Assembles the residuial vector. More... | |
virtual int | formTangVectProduct (Vector &force) |
form the product of the condensed tangent matrix times the vector \(u\). More... | |
virtual const Matrix & | getTangent (void) |
Return the tangent stiffness matrix. More... | |
virtual const Vector & | getResidual (void) |
Returns the residual vector. More... | |
virtual const Vector & | getTangVectProduct (void) |
Returns the result of invoking getCondensedMatVect() on the solver. More... | |
virtual const DomainSolver * | getDomainSolver (void) const |
Returns a pointer to the DomainSolver associated with this object. More... | |
virtual DomainSolver * | getDomainSolver (void) |
Returns a pointer to the DomainSolver. | |
virtual const Subdomain * | getSubdomain (void) const |
Returns a pointer to the subdomain. | |
virtual Subdomain * | getSubdomain (void) |
Returns a pointer to the subdomain. | |
virtual int | sendSelf (CommParameters &) |
Sends the object. | |
virtual int | recvSelf (const CommParameters &) |
Receives the object. | |
virtual int | setAlgorithm (EquiSolnAlgo &theAlgorithm) |
Sets the solution algorithm to use in the analysis. | |
virtual int | setIntegrator (IncrementalIntegrator &theIntegrator) |
Sets the integrator to use in the analysis. | |
virtual int | setLinearSOE (LinearSOE &theSOE) |
Sets the system of equations to use in the analysis. | |
virtual int | setConvergenceTest (ConvergenceTest &theTest) |
Sets the convergence test to use in the analysis. | |
![]() | |
AnalysisAggregation * | getAnalysisAggregationPtr (void) |
Domain * | getDomainPtr (void) |
Returns a pointer to the domain. | |
const Domain * | getDomainPtr (void) const |
Returns a pointer to the domain. | |
ConstraintHandler * | getConstraintHandlerPtr (void) |
Returns a pointer to the constraint handler. | |
DOF_Numberer * | getDOF_NumbererPtr (void) const |
Returns a pointer to the DOF numberer. | |
AnalysisModel * | getAnalysisModelPtr (void) const |
Returns a pointer to the analysis model. | |
LinearSOE * | getLinearSOEPtr (void) const |
Returns a pointer to the linear system of equations. | |
EigenSOE * | getEigenSOEPtr (void) const |
Returns a pointer to the system of equations de eigenvalues. | |
Integrator * | getIntegratorPtr (void) |
Returns, if possible, a pointer al integrator otherwise it returns nullptr. | |
const Integrator * | getIntegratorPtr (void) const |
Returns, if possible, a pointer al integrator otherwise it returns nullptr. | |
IncrementalIntegrator * | getIncrementalIntegratorPtr (void) |
Returns, if possible, a pointer al integrator incremental otherwise it returns nullptr. | |
EigenIntegrator * | getEigenIntegratorPtr (void) |
Returns, if possible, a pointer al EigenIntegrator otherwise it returns nullptr. | |
LinearBucklingIntegrator * | getLinearBucklingIntegratorPtr (void) |
Returns, if possible, a pointer al LinearBucklingIntegrator otherwise it returns nullptr. | |
TransientIntegrator * | getTransientIntegratorPtr (void) |
Returns, if possible, a pointer al EigenIntegrator otherwise it returns nullptr. | |
StaticIntegrator * | getStaticIntegratorPtr (void) |
Returns, if possible, a pointer al StaticIntegrator otherwise it returns nullptr. | |
SolutionAlgorithm * | getSolutionAlgorithmPtr (void) |
EigenAlgorithm * | getEigenSolutionAlgorithmPtr (void) |
Return a pointer to the eigenproblem solution algorithm (if it's not defined it returns nullptr). More... | |
EquiSolnAlgo * | getEquiSolutionAlgorithmPtr (void) |
Return a pointer to the linear SOE solution algorithm (if it's not defined it returns nullptr). More... | |
DomainDecompAlgo * | getDomainDecompSolutionAlgorithmPtr (void) |
Return a pointer to the domain decomposition solution algorithm (if it's not defined it returns nullptr). More... | |
virtual ConvergenceTest * | getConvergenceTestPtr (void) |
Returns a pointer to the convergence test (only for suitable analysis). | |
virtual const ConvergenceTest * | getConvergenceTestPtr (void) const |
Returns a pointer to the convergence test (only for suitable analysis). | |
virtual int | setNumberer (DOF_Numberer &theNumberer) |
Sets the renumerador to use in the analysis. | |
virtual int | setEigenSOE (EigenSOE &theSOE) |
Sets the sistema de eigenvalues to use in the analysis. | |
virtual int | setIntegrator (Integrator &theNewIntegrator) |
Sets the integrator to use in the analysis. | |
virtual int | setAlgorithm (SolutionAlgorithm &theNewAlgorithm) |
Set the solution algorithm to be used in the analysis. | |
void | brokeConstraintHandler (const CommParameters &, const ID &) |
void | brokeNumberer (const CommParameters &, const ID &) |
void | brokeAnalysisModel (const CommParameters &, const ID &) |
void | brokeDDLinearSOE (const CommParameters &, const ID &) |
void | brokeLinearSOE (const CommParameters &, const ID &) |
void | brokeIncrementalIntegrator (const CommParameters &, const ID &) |
void | brokeStaticIntegrator (const CommParameters &, const ID &) |
void | brokeTransientIntegrator (const CommParameters &, const ID &) |
void | brokeDomainDecompAlgo (const CommParameters &, const ID &) |
void | brokeEquiSolnAlgo (const CommParameters &, const ID &) |
int | getAnalysisResult (void) const |
![]() | |
MovableObject (int classTag, int dbTag) | |
Constructor. More... | |
MovableObject (int classTag) | |
Constructor. More... | |
MovableObject (const MovableObject &) | |
Copy constructor. Doesn't copy the dbTag. | |
MovableObject & | operator= (const MovableObject &) |
Assignment operator. Doesn't copy the dbTag. | |
int | getClassTag (void) const |
Return the class identifier. | |
int | getDbTag (void) const |
Return the object identifier in the database. | |
int | getDbTag (CommParameters &) |
Return the object identifier in the database. | |
void | setDbTag (int dbTag) |
Sets the object identifier in the database. | |
void | setDbTag (CommParameters &) |
Sets the object identifier in the database if not already set. More... | |
virtual int | setParameter (const std::vector< std::string > &argv, Parameter ¶m) |
Sets the value param to the parameter argv . | |
virtual int | updateParameter (int parameterID, Information &info) |
Updates the parameter identified by parameterID with info . | |
virtual int | activateParameter (int parameterID) |
Activates the parameter identified by parameterID . | |
virtual int | setVariable (const std::string &variable, Information &) |
Set the value of the variable idenfified by var . | |
virtual int | getVariable (const std::string &variable, Information &) |
Return the value of the variable idenfified by var . | |
![]() | |
DistributedBase (void) | |
Constructor. | |
virtual DbTagData & | getDbTagData (void) const |
Returns a vector to store class dbTags. | |
const int & | getDbTagDataPos (const int &i) const |
Returns the data at the i-th position. | |
void | setDbTagDataPos (const int &i, const int &v) |
Sets the data at the i-th position. | |
void | inicComm (const int &dataSize) const |
Initializes communication. | |
Protected Member Functions | |
Subdomain * | getSubdomainPtr (void) const |
Returns a pointer to the subdomain. | |
void | set_all_links (void) |
Sets los pointers tol DomainDecompSolutionAlgorithm y al subdomain. | |
DomainDecompositionAnalysis (Subdomain &theDomain, AnalysisAggregation *s=nullptr) | |
Constructor. More... | |
DomainDecompositionAnalysis (Subdomain &theDomain, DomainSolver &theSolver, AnalysisAggregation *s=nullptr) | |
Constructor. More... | |
DomainDecompositionAnalysis (int classTag, Subdomain &theDomain, AnalysisAggregation *s=nullptr) | |
Constructor. More... | |
DomainDecompositionAnalysis (int classTag, Subdomain &theDomain, DomainSolver &theSolver, AnalysisAggregation *s) | |
Constructor. More... | |
Analysis * | getCopy (void) const |
Virtual constructor. | |
![]() | |
int | newStepDomain (AnalysisModel *theModel, const double &dT=0.0) |
ProcSolu * | getProcSolu (void) |
const ProcSolu * | getProcSolu (void) const |
Analysis (AnalysisAggregation *analysis_aggregation) | |
Constructor. More... | |
Protected Attributes | |
int | domainStamp |
![]() | |
int | analysis_result |
Equal to zero if success. | |
AnalysisAggregation * | solution_method |
Solution method. | |
Friends | |
class | ProcSolu |
class | FEM_ObjectBroker |
Used when performing a domain decomposition analysis.
It provides methods which can be invoked by a subdomain to perform the numerical computations required.
Used when performing an analysis using the domain decomposition method to solve the equations. Its public member functions are all virtual to allow for the generalization of the class. The following are the aggregates of such an analysis type:
|
protected |
Constructor.
A constructor that is used when creating a DomainDecompositionObject which is to receive itself afterwards. Sets the links to the Subdomain. It is essential that this object recvSelf() before DomainDecompositionAnalysis methods are invoked as their invocation will cause segmentation faults.
Invokes {setAnalysis(this)} on the Subdomain.
subDomain | Subdomain to deal with. |
s | solution method to use. |
|
protected |
Constructor.
subDomain | subdomain to deal with. |
theSolvr | Solver to use. |
s | solution method to use. |
|
protected |
Constructor.
clsTag | class identifier. |
subDomain | subdomain to deal with. |
s | solution method to use. |
|
protected |
Constructor.
clsTag | class identifier. |
subDomain | subdomain to deal with. |
theSolver | Solver to use. |
s | solution method to use. |
|
virtual |
Performs the analysis.
dT | time increment. |
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Assembles the residuial vector.
A method to form the condensed residual vector, given the current number of internal dof. A check to see if the Subdomain has changed is first made, this is done by invoking hasDomainChanged() on the Subdomain; if it has been modified invokeChangeOnAnalysis() is invoked on the Subdomain
. If the tangent has not yet been formed it invokes formTangent() on itself and sets the counter
to \(-1\). To form the residual formUnbalance() is invoked on theIntegrator
and {condenseRHS(numInt)} is invoked on theSolver
. Returns \(0\) or the negative number that was returned if either formUnbalance()} or {condenseRHS() failed.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Assembles the tangent stiffness matrix.
A method to form the condensed tangent matrix, given the current number of internal dof. It first checks to see if the Subdomain has changed, by invoking hasDomainChanged() on the Subdomain; if it has invokeChangeOnAnalysis() is invoked on the {Subdomain}. It then checks to see if counter
is equal to \(-1\) or not; a \(-1\) indicating the tangent has already been formed in order that the residual could be determined. If this is not the case {formTangent()} is invoked on theIntegrator
, condenseA() is invoked on theSolver
object, a flag is set to indicate that the tangent has been formed, and the counter
is incremented. Returns a \(0\) if successfull, if either the formTangent() or {condenseA()} method returns a negative number this number is returned.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
form the product of the condensed tangent matrix times the vector \(u\).
A method to form the product of the condensed tangent matrix times the vector \(u\). A check to see if the Subdomain has changed is first made, this is done by invoking hasDomainChanged() on the Subdomain; if it has been modified invokeChangeOnAnalysis() is invoked on the Subdomain
. If the tangent has not yet been formed it invokes formTangent() on itself and sets the counter
to \(-1\). Finally the result of invoking {computeCondensedMatVect(numInt, u)} on {theSolver} is returned.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Returns a pointer to the DomainSolver associated with this object.
Reimplemented from XC::Analysis.
|
virtual |
Returns the number of external equations.
A method to return the number of external degrees-of-freedom on the Subdomain interface, this information is returned when handle() is invoked on theConstraintHandler
.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Returns the residual vector.
A method which returns the portion of the \(b\) corresponding to the external equation numbers. A check to see if the Subdomain has changed is first made, this is done by invoking hasDomainChanged() on the Subdomain; if it has been modified invokeChangeOnAnalysis() is invoked on the Subdomain
and formResidual() is called. The object returns the Vector obtained from invoking getCondensedRHS() on the solver.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Return the tangent stiffness matrix.
A method which returns the portion of A corresponding to internal equation numbers. A check to see if the Subdomain has changed is first made, this is done by invoking hasDomainChanged() on the Subdomain; if it has been modified invokeChangeOnAnalysis() is invoked on the Subdomain
. If the tangent has not yet been formed formTangent() is invoked. The method returns the result of invoking getCondensedA()} on {theSolver().
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.
|
virtual |
Returns the result of invoking getCondensedMatVect() on the solver.
Returns the result of invoking getCondensedMatVect() on the solver. A check to see if the Subdomain has changed is first made, this is done by invoking hasDomainChanged() on the Subdomain; if it has been modified invokeChangeOnAnalysis() is invoked on the Subdomain
. The object returns the Vector obtained from invoking getCondensedMatVect() on theSolver
.
Reimplemented in XC::StaticDomainDecompositionAnalysis, and XC::TransientDomainDecompositionAnalysis.