|
OOFEM 3.0
|
#include <solutionbasedshapefunction.h>
Public Member Functions | |
| SolutionbasedShapeFunction (int n, Domain *d) | |
| virtual | ~SolutionbasedShapeFunction () |
| void | initializeFrom (InputRecord &ir) override |
| bool | requiresActiveDofs () override |
| int | giveNumberOfInternalDofManagers () override |
| Gives the number of internal dof managers. | |
| DofManager * | giveInternalDofManager (int i) override |
| Gives an internal dof manager from receiver. | |
| double | giveUnknown (PrimaryField &field, ValueModeType mode, TimeStep *tStep, ActiveDof *dof) override |
| double | giveUnknown (ValueModeType mode, TimeStep *tStep, ActiveDof *dof) override |
| bool | hasBc (Dof *dof, TimeStep *tStep) override |
| bool | isPrimaryDof (ActiveDof *dof) override |
| void | computeDofTransformation (ActiveDof *dof, FloatArray &masterContribs) override |
| int | giveNumberOfMasterDofs (ActiveDof *dof) override |
| Dof * | giveMasterDof (ActiveDof *dof, int mdof) override |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| double | checkIncompressibility (EngngModel &myEngngModel) |
| Public Member Functions inherited from oofem::ActiveBoundaryCondition | |
| ActiveBoundaryCondition (int n, Domain *d) | |
| virtual | ~ActiveBoundaryCondition () |
| Destructor. | |
| virtual void | addElementSide (int elem, int side) |
| virtual void | assemble (SparseMtrx &answer, TimeStep *tStep, CharType type, const UnknownNumberingScheme &r_s, const UnknownNumberingScheme &c_s, double scale=1.0, void *lock=nullptr) |
| virtual void | assembleVector (FloatArray &answer, TimeStep *tStep, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, FloatArray *eNorms=nullptr, void *lock=nullptr) |
| virtual void | giveLocationArrays (std ::vector< IntArray > &rows, std ::vector< IntArray > &cols, CharType type, const UnknownNumberingScheme &r_s, const UnknownNumberingScheme &c_s) |
| virtual double | giveBcValue (Dof *dof, ValueModeType mode, TimeStep *tStep) |
| Public Member Functions inherited from oofem::GeneralBoundaryCondition | |
| GeneralBoundaryCondition (int n, Domain *d) | |
| virtual | ~GeneralBoundaryCondition () |
| Destructor. | |
| int | giveSetNumber () const |
| Function * | giveTimeFunction () |
| int | getIsImposedTimeFunctionNumber () const |
| void | setIsImposedTimeFunctionNumber (int funcIndx) |
| virtual bcValType | giveBCValType () const |
| virtual bool | isImposed (TimeStep *tStep) |
| virtual const IntArray & | giveDofIDs () const |
| virtual bcType | giveType () const |
| virtual bcGeomType | giveBCGeoType () const |
| virtual void | scale (double s) |
| virtual double | giveProperty (int aProperty, TimeStep *tStep) const |
| void | giveInputRecord (DynamicInputRecord &input) override |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| virtual void | updateYourself (TimeStep *tStep) |
| Public Member Functions inherited from oofem::FEMComponent | |
| FEMComponent (int n, Domain *d) | |
| virtual | ~FEMComponent ()=default |
| Virtual destructor. | |
| Domain * | giveDomain () const |
| virtual void | setDomain (Domain *d) |
| int | giveNumber () const |
| void | setNumber (int num) |
| virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
| virtual void | initializeFrom (InputRecord &ir, int priority) |
| virtual void | initializeFinish () |
| virtual void | postInitialize () |
| Performs post initialization steps. Called after all components are created and initialized. | |
| virtual int | checkConsistency () |
| virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
| virtual void | printYourself () |
| Prints receiver state on stdout. Useful for debugging. | |
| virtual Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Private Member Functions | |
| bool | isCoeff (ActiveDof *dof) |
| void | updateModelWithFactors (modeStruct &m) |
| void | setBoundaryConditionOnDof (Dof *d, double value) |
| void | setLoads (EngngModel &myEngngModel, int d) |
| void | loadProblem () |
| void | init () |
| void | computeCorrectionFactors (modeStruct &myMode, IntArray &Dofs, double &am, double &ap) |
| void | giveValueAtPoint (FloatArray &answer, const FloatArray &coords, IntArray &dofID, EngngModel &myEngngModel) |
| giveValueAtPoint | |
| void | giveCorrectedValueAtPoint (FloatArray &answer, const FloatArray &coords, IntArray &dofID, EngngModel &myEngngModel) |
| void | splitBoundaryNodeIDs (modeStruct &mode, Element &e, IntArray &boundary, IntArray &pList, IntArray &mList, IntArray &zList, FloatMatrix &nodeValues) |
| void | computeBaseFunctionValueAt (FloatArray &answer, const FloatArray &coords, IntArray &dofIDs, EngngModel &myEngngModel) |
| void | initializeSurfaceData (modeStruct &mode) |
| void | copyDofManagersToSurfaceData (modeStruct &mode, IntArray nodeList, bool isPlus, bool isMinus, bool isZero) |
| void | whichBoundary (const FloatArray &coord, bool &isPlus, bool &isMinus, bool &isZero) |
Private Attributes | |
| Node * | myNode |
| IntArray | myDofIDs |
| int | externalSet |
| int | order |
| double | TOL |
| std::string | filename |
| bool | useConstantBase |
| bool | isLoaded |
| bool | useCorrectionFactors |
| bool | dumpSnapshot |
| double | bigNorm |
| int | worstIndex |
| std ::vector< modeStruct > | modes |
| TimeStep * | thisTimestep |
| FloatArray | maxCoord |
| FloatArray | minCoord |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::GeneralBoundaryCondition | |
| int | timeFunction |
| Associated load time function. | |
| bcValType | valType |
| Physical meaning of BC value. | |
| IntArray | dofs |
| Dofs that b.c. is applied to (relevant for Dirichlet type b.c.s). | |
| int | isImposedTimeFunction |
| int | set |
| Set number for boundary condition to be applied to. | |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
Definition at line 88 of file solutionbasedshapefunction.h.
| oofem::SolutionbasedShapeFunction::SolutionbasedShapeFunction | ( | int | n, |
| Domain * | d ) |
|
inlinevirtual |
Definition at line 146 of file solutionbasedshapefunction.h.
| double oofem::SolutionbasedShapeFunction::checkIncompressibility | ( | EngngModel & | myEngngModel | ) |
|
private |
Definition at line 490 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::FloatArray::clear(), oofem::EngngModel::giveDomain(), oofem::FEMComponent::giveDomain(), oofem::FloatArray::giveSize(), oofem::IntArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), giveValueAtPoint(), oofem::SpatialLocalizer::init(), isLoaded, loadProblem(), maxCoord, minCoord, oofem::FloatArray::resize(), TOL, useConstantBase, and oofem::FloatArray::zero().
Referenced by computeCorrectionFactors(), copyDofManagersToSurfaceData(), and giveCorrectedValueAtPoint().
|
private |
Definition at line 140 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::IntArray::at(), oofem::FEInterpolation::boundaryEvalN(), oofem::FEInterpolation::boundaryEvalNormal(), oofem::FEInterpolation::boundaryGiveNodes(), oofem::FEInterpolation::boundaryGiveTransformationJacobian(), oofem::FEInterpolation::boundaryLocal2Global(), computeBaseFunctionValueAt(), oofem::GeneralBoundaryCondition::dofs, oofem::FloatArray::dotProduct(), externalSet, oofem::FEInterpolation::giveBoundaryIntegrationRule(), oofem::Set::giveBoundaryList(), oofem::EngngModel::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveGeometryType(), oofem::Element::giveInterpolation(), oofem::Domain::giveSet(), oofem::IntArray::giveSize(), oofem::modeStruct::myEngngModel, N, order, oofem::FloatMatrix::resize(), splitBoundaryNodeIDs(), and oofem::FloatMatrix::zero().
Referenced by loadProblem().
|
overridevirtual |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 294 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::SurfaceDataStruct::DofID, oofem::SurfaceDataStruct::DofMan, oofem::DofManager::giveCoordinates(), oofem::Dof::giveDofID(), oofem::Dof::giveDofManager(), oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), isLoaded, loadProblem(), modes, OOFEM_ERROR, oofem::FloatArray::resize(), oofem::modeStruct::SurfaceData, oofem::SurfaceDataStruct::value, and whichBoundary().
Referenced by giveUnknown().
|
private |
Definition at line 793 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::IntArray::at(), computeBaseFunctionValueAt(), oofem::GeneralBoundaryCondition::dofs, oofem::DofManager::giveCoordinates(), oofem::IntArray::giveSize(), oofem::modeStruct::myEngngModel, and oofem::modeStruct::SurfaceData.
Referenced by giveCorrectedValueAtPoint(), and initializeSurfaceData().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 166 of file solutionbasedshapefunction.h.
|
private |
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 167 of file solutionbasedshapefunction.h.
References _IFT_SolutionbasedShapeFunction_Name.
|
overridevirtual |
Gives an internal dof manager from receiver.
Reimplemented from oofem::GeneralBoundaryCondition.
Definition at line 107 of file solutionbasedshapefunction.C.
References myNode.
Referenced by oofem::MatlabExportModule::doOutputSpecials().
|
overridevirtual |
Give the pointer to master dof belonging to active DOF.
| dof | Active dof belonging to receiver. |
| mdof | Local master dof number. |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 350 of file solutionbasedshapefunction.C.
|
inlineoverridevirtual |
Gives the number of internal dof managers.
Reimplemented from oofem::GeneralBoundaryCondition.
Definition at line 151 of file solutionbasedshapefunction.h.
|
overridevirtual |
Allows for active boundary conditions to handle their own special DOF.
| dof | Active dof belonging to receiver. |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 344 of file solutionbasedshapefunction.C.
References oofem::FEMComponent::giveDomain().
|
overridevirtual |
Computes the value of the dof.
| field | Field to take value from. |
| mode | Mode of unknown value. |
| tStep | Time step. |
| dof | Active dof for which to obtain the value. |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 272 of file solutionbasedshapefunction.C.
References giveUnknown().
Referenced by giveUnknown().
|
overridevirtual |
Computes the value of the dof.
| mode | Mode of unknown value. |
| tStep | Time step. |
| dof | Active dof for which to obtain the value. |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 278 of file solutionbasedshapefunction.C.
References computeDofTransformation(), oofem::FloatArray::dotProduct(), myDofIDs, and myNode.
|
private |
giveValueAtPoint
| answer | Values as point corresponding to the coordinate and dofID |
| coords | Coordinated at which evaluation takes place |
| dofID | Specifies DofIDs to evaluate |
| myEngngModel | EngngModel |
Definition at line 573 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::IntArray::at(), oofem::Element::computeField(), oofem::EngngModel::giveDomain(), oofem::SpatialLocalizer::giveElementClosestToPoint(), oofem::Element::giveElementDofIDMask(), oofem::IntArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), OOFEM_WARNING, oofem::FloatArray::pY(), oofem::FloatArray::resize(), and thisTimestep.
Referenced by computeBaseFunctionValueAt().
Returns the prescribed value of a dof (if any).
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 157 of file solutionbasedshapefunction.h.
|
private |
Definition at line 124 of file solutionbasedshapefunction.C.
References oofem::DofManager::giveCoordinates(), oofem::FEMComponent::giveDomain(), oofem::max(), maxCoord, oofem::min(), and minCoord.
Referenced by initializeFrom().
|
overridevirtual |
Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 73 of file solutionbasedshapefunction.C.
References _IFT_SolutionbasedShapeFunction_DumpSnapshots, _IFT_SolutionbasedShapeFunction_Externalset, _IFT_SolutionbasedShapeFunction_ShapeFunctionFile, _IFT_SolutionbasedShapeFunction_UseCorrectionFactors, oofem::FEMComponent::domain, dumpSnapshot, externalSet, filename, oofem::FEMComponent::giveDomain(), init(), IR_GIVE_OPTIONAL_FIELD, myNode, useConstantBase, and useCorrectionFactors.
|
private |
Definition at line 626 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::IntArray::at(), oofem::FEInterpolation::boundaryEvalNormal(), oofem::FEInterpolation::boundaryGiveNodes(), copyDofManagersToSurfaceData(), oofem::FEMComponent::domain, oofem::IntArray::erase(), oofem::Set::giveBoundaryList(), oofem::DofManager::giveCoordinates(), oofem::Domain::giveDofManager(), oofem::Element::giveDofManager(), oofem::Element::giveDofManagerNumber(), oofem::EngngModel::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveGeometryType(), oofem::Element::giveInterpolation(), oofem::FEMComponent::giveNumber(), oofem::GeneralBoundaryCondition::giveSetNumber(), oofem::FloatArray::giveSize(), oofem::IntArray::giveSize(), oofem::IntArray::insertOnce(), maxCoord, minCoord, oofem::modeStruct::myEngngModel, oofem::FloatArray::printYourself(), and oofem::FloatArray::resize().
Referenced by giveCorrectedValueAtPoint(), and loadProblem().
|
private |
Definition at line 113 of file solutionbasedshapefunction.C.
References myNode.
|
inlineoverridevirtual |
Checks to see if the dof is a primary DOF.
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 159 of file solutionbasedshapefunction.h.
|
private |
Definition at line 356 of file solutionbasedshapefunction.C.
References oofem::_processor, oofem::FloatArray::add(), oofem::modeStruct::am, oofem::modeStruct::ap, oofem::FloatArray::at(), computeCorrectionFactors(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, dumpSnapshot, filename, oofem::OOFEMTXTDataReader::finish(), oofem::DofManager::giveCoordinates(), initializeSurfaceData(), oofem::InstanciateProblem(), isLoaded, modes, oofem::modeStruct::myEngngModel, OOFEM_LOG_INFO, OOFEM_WARNING, oofem::FloatArray::resize(), setLoads(), thisTimestep, updateModelWithFactors(), useCorrectionFactors, and oofem::FloatArray::zero().
Referenced by computeBaseFunctionValueAt(), and computeDofTransformation().
|
inlineoverridevirtual |
Checks to see if active boundary condition requires special DOFs.
Reimplemented from oofem::ActiveBoundaryCondition.
Definition at line 150 of file solutionbasedshapefunction.h.
|
private |
Definition at line 602 of file solutionbasedshapefunction.C.
References _IFT_BoundaryCondition_PrescribedValue, _IFT_GeneralBoundaryCondition_timeFunct, oofem::classFactory, oofem::Dof::giveBcId(), oofem::Dof::giveDofManager(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::Dof::setBcId(), oofem::Domain::setBoundaryCondition(), oofem::DynamicInputRecord::setField(), oofem::BoundaryCondition::setPrescribedValue(), and oofem::DynamicInputRecord::setRecordKeywordField().
Referenced by updateModelWithFactors().
|
private |
Definition at line 463 of file solutionbasedshapefunction.C.
References _IFT_GeneralBoundaryCondition_timeFunct, _IFT_Load_components, oofem::FloatArray::at(), oofem::IntArray::at(), oofem::classFactory, oofem::EngngModel::giveDomain(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElements(), oofem::Domain::giveNumberOfBoundaryConditions(), oofem::IntArray::giveSize(), oofem::FloatArray::resize(), oofem::IntArray::resizeWithValues(), oofem::Domain::setBoundaryCondition(), oofem::DynamicInputRecord::setField(), oofem::DynamicInputRecord::setRecordKeywordField(), and oofem::FloatArray::zero().
Referenced by loadProblem().
|
private |
Definition at line 232 of file solutionbasedshapefunction.C.
References oofem::FloatMatrix::at(), oofem::IntArray::at(), oofem::IntArray::clear(), oofem::GeneralBoundaryCondition::dofs, oofem::DofManager::giveCoordinates(), oofem::Element::giveDofManager(), oofem::IntArray::giveSize(), oofem::IntArray::insertSorted(), oofem::modeStruct::SurfaceData, and whichBoundary().
Referenced by computeCorrectionFactors(), and giveCorrectedValueAtPoint().
|
private |
Definition at line 442 of file solutionbasedshapefunction.C.
References oofem::modeStruct::am, oofem::modeStruct::ap, oofem::SurfaceDataStruct::DofID, oofem::SurfaceDataStruct::DofMan, oofem::DofManager::giveDofWithID(), oofem::SurfaceDataStruct::isFree, oofem::SurfaceDataStruct::isMinus, oofem::SurfaceDataStruct::isPlus, oofem::SurfaceDataStruct::isZeroBoundary, setBoundaryConditionOnDof(), oofem::modeStruct::SurfaceData, and oofem::SurfaceDataStruct::value.
Referenced by loadProblem().
|
private |
Definition at line 778 of file solutionbasedshapefunction.C.
References oofem::FloatArray::at(), oofem::FloatArray::giveSize(), maxCoord, minCoord, and TOL.
Referenced by computeDofTransformation(), giveCorrectedValueAtPoint(), and splitBoundaryNodeIDs().
|
private |
Definition at line 103 of file solutionbasedshapefunction.h.
|
private |
Definition at line 101 of file solutionbasedshapefunction.h.
Referenced by initializeFrom(), and loadProblem().
|
private |
Definition at line 93 of file solutionbasedshapefunction.h.
Referenced by computeCorrectionFactors(), and initializeFrom().
|
private |
Definition at line 96 of file solutionbasedshapefunction.h.
Referenced by initializeFrom(), and loadProblem().
|
private |
Definition at line 98 of file solutionbasedshapefunction.h.
Referenced by computeBaseFunctionValueAt(), computeDofTransformation(), and loadProblem().
|
private |
Definition at line 113 of file solutionbasedshapefunction.h.
Referenced by computeBaseFunctionValueAt(), init(), initializeSurfaceData(), and whichBoundary().
|
private |
Definition at line 113 of file solutionbasedshapefunction.h.
Referenced by computeBaseFunctionValueAt(), init(), initializeSurfaceData(), and whichBoundary().
|
private |
Definition at line 108 of file solutionbasedshapefunction.h.
Referenced by computeDofTransformation(), and loadProblem().
|
private |
Definition at line 92 of file solutionbasedshapefunction.h.
Referenced by giveMasterDof(), and giveUnknown().
|
private |
Definition at line 91 of file solutionbasedshapefunction.h.
Referenced by giveInternalDofManager(), giveMasterDof(), giveUnknown(), initializeFrom(), and isCoeff().
|
private |
Definition at line 94 of file solutionbasedshapefunction.h.
Referenced by computeCorrectionFactors().
|
private |
Definition at line 111 of file solutionbasedshapefunction.h.
Referenced by giveValueAtPoint(), and loadProblem().
|
private |
Definition at line 95 of file solutionbasedshapefunction.h.
Referenced by computeBaseFunctionValueAt(), and whichBoundary().
|
private |
Definition at line 97 of file solutionbasedshapefunction.h.
Referenced by computeBaseFunctionValueAt(), and initializeFrom().
|
private |
Definition at line 100 of file solutionbasedshapefunction.h.
Referenced by initializeFrom(), and loadProblem().
|
private |
Definition at line 104 of file solutionbasedshapefunction.h.