|
OOFEM 3.0
|
#include <prescribeddispslipbcdirichletrc.h>
Public Member Functions | |
| PrescribedDispSlipBCDirichletRC (int n, Domain *d) | |
| virtual | ~PrescribedDispSlipBCDirichletRC () |
| double | give (Dof *dof, ValueModeType mode, double time) override |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| virtual void | updateCoefficientMatrix (FloatMatrix &C) |
| double | domainSize (Domain *d, int set) override |
| void | computeStress (FloatArray &sigma, TimeStep *tStep) override |
| void | computeTransferStress (FloatArray &bStress, TimeStep *tStep) override |
| void | computeReinfStress (FloatArray &rStress, TimeStep *tStep) override |
| void | computeTangent (FloatMatrix &tangent, TimeStep *tStep) override |
| void | scale (double s) override |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| Public Member Functions inherited from oofem::BoundaryCondition | |
| BoundaryCondition (int i, Domain *d) | |
| virtual | ~BoundaryCondition () |
| Destructor. | |
| virtual double | give (Dof *dof, ValueModeType mode, TimeStep *tStep) |
| void | setPrescribedValue (double s) |
| bcType | giveType () const override |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| Public Member Functions inherited from oofem::GeneralBoundaryCondition | |
| GeneralBoundaryCondition (int n, Domain *d) | |
| virtual | ~GeneralBoundaryCondition () |
| Destructor. | |
| int | giveSetNumber () const |
| virtual int | giveNumberOfInternalDofManagers () |
| Gives the number of internal dof managers. | |
| virtual DofManager * | giveInternalDofManager (int i) |
| Gives an internal dof manager from receiver. | |
| Function * | giveTimeFunction () |
| int | getIsImposedTimeFunctionNumber () const |
| void | setIsImposedTimeFunctionNumber (int funcIndx) |
| virtual bcValType | giveBCValType () const |
| virtual bool | isImposed (TimeStep *tStep) |
| virtual const IntArray & | giveDofIDs () const |
| virtual bcGeomType | giveBCGeoType () const |
| virtual double | giveProperty (int aProperty, TimeStep *tStep) const |
| 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). | |
| Public Member Functions inherited from oofem::PrescribedDispSlipHomogenization | |
| PrescribedDispSlipHomogenization () | |
| virtual | ~PrescribedDispSlipHomogenization () |
| virtual void | setDispField (const FloatArray &t) |
| virtual void | setSlipField (const FloatArray &t) |
| virtual void | setDispGradient (const FloatArray &t) |
| virtual void | setSlipGradient (const FloatArray &t) |
| void | giveDispField (FloatArray &oField) const |
| void | giveSlipField (FloatArray &oField) const |
| void | giveDispGradient (FloatArray &oGradient) const |
| void | giveSlipGradient (FloatArray &oGradient) const |
| virtual void | setCenterCoordinate (FloatArray &x) |
| FloatArray & | giveCenterCoordinate () |
Protected Member Functions | |
| double | giveOnConcrete (Dof *dof, int pos, const FloatArray u) |
| double | giveOnSteel (Dof *dof, int pos, const FloatArray u, const FloatArray us) |
Protected Attributes | |
| bool | dispGradON = false |
| bool | slipON = false |
| on/off flag specifying whether the displacement gradient should be applied via Neumann BCs | |
| bool | slipGradON = false |
| on/off flag specifying whether the slip field should be applied via Neumann BCs | |
| int | conBoundSet |
| on/off flag specifying whether the slip gradient should be applied via Neumann BCs | |
| int | reinfXBound =0 |
| int | reinfYBound =0 |
| Protected Attributes inherited from oofem::BoundaryCondition | |
| FloatArray | values |
| Prescribed values for each resp. dof. | |
| 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. | |
| Protected Attributes inherited from oofem::PrescribedDispSlipHomogenization | |
| FloatMatrix | dispGradient |
| Prescribed gradients. | |
| FloatMatrix | slipGradient |
| FloatArray | dispField |
| Prescribed fields. | |
| FloatArray | slipField |
| FloatArray | mCenterCoord |
| Center coordinates. | |
Prescribes macroscopic displacement gradient, reinforcement slip field and slip gradient on the reinforced concrete RVE using Dirichlet boundary conditions, cf. Sciegaj, A., Larsson, F., Lundgren, K., Nilenius, F., & Runesson, K. (2019). A multiscale model for reinforced concrete with macroscopic variation of reinforcement slip. Computational Mechanics, 63(2), 139–158. https://doi.org/10.1007/s00466-018-1588-3 Macroscopic slip and slip gradient fields are optional (see PrescribedDispSlipHomogenization). If not specified, this BC will prescribe only the displacement gradient, i.e., it will work the same was as a PrescribedGradient bc. Works with 2D RVEs comprising solid elements (concrete), reinforcement (beam/truss elements) and interface elements in between. Used in multiscale analyses of reinforced concrete structures. Currently, only orthogonal reinforcement in X and Y direction is supported.
This BC can be applied to the set of:
If the macroscopic slip/slip gradient field is to be prescribed onto the RVE, the optional node sets reinfxbound and reinfybound must be specified. These node sets contain the boundary nodes of the horizontal and vertical reinforcement, respectively.
Definition at line 78 of file prescribeddispslipbcdirichletrc.h.
|
inline |
Definition at line 81 of file prescribeddispslipbcdirichletrc.h.
References oofem::BoundaryCondition::BoundaryCondition().
|
inlinevirtual |
Definition at line 82 of file prescribeddispslipbcdirichletrc.h.
|
overridevirtual |
Implements oofem::PrescribedDispSlipHomogenization.
Definition at line 325 of file prescribeddispslipbcdirichletrc.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::EngngModel::assembleVector(), oofem::FloatArray::at(), oofem::IntArray::at(), oofem::FEMComponent::domain, domainSize(), oofem::PrescribedDispSlipHomogenization::giveCenterCoordinate(), oofem::DofManager::giveCoordinates(), oofem::DofManager::giveDofWithID(), oofem::FEMComponent::giveDomain(), oofem::GeneralBoundaryCondition::giveSetNumber(), oofem::IntArray::giveSize(), reinfXBound, reinfYBound, oofem::FloatArray::resize(), slipGradON, oofem::FloatArray::times(), and oofem::FloatArray::zero().
Referenced by oofem::MatlabExportModule::doOutputSpecials().
|
overridevirtual |
Implements oofem::PrescribedDispSlipHomogenization.
Definition at line 243 of file prescribeddispslipbcdirichletrc.C.
References oofem::EngngModel::assembleVector(), oofem::FloatArray::beTProductOf(), dispGradON, oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::GeneralBoundaryCondition::giveSetNumber(), oofem::FloatArray::times(), updateCoefficientMatrix(), and oofem::FloatArray::zero().
Referenced by oofem::MatlabExportModule::doOutputSpecials().
|
overridevirtual |
Implements oofem::PrescribedDispSlipHomogenization.
Definition at line 389 of file prescribeddispslipbcdirichletrc.C.
References oofem::EngngModel::assemble(), oofem::FloatMatrix::beTProductOf(), oofem::classFactory, dispGradON, oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), oofem::GeneralBoundaryCondition::giveSetNumber(), OOFEM_ERROR, slipGradON, slipON, oofem::ST_Petsc, oofem::FloatMatrix::subtract(), oofem::FloatMatrix::times(), and updateCoefficientMatrix().
|
overridevirtual |
Implements oofem::PrescribedDispSlipHomogenization.
Definition at line 267 of file prescribeddispslipbcdirichletrc.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::EngngModel::assembleVector(), oofem::FloatArray::at(), oofem::IntArray::at(), oofem::FEMComponent::domain, domainSize(), oofem::DofManager::giveDofWithID(), oofem::FEMComponent::giveDomain(), oofem::GeneralBoundaryCondition::giveSetNumber(), oofem::IntArray::giveSize(), reinfXBound, reinfYBound, oofem::FloatArray::resize(), slipON, oofem::FloatArray::times(), and oofem::FloatArray::zero().
Referenced by oofem::MatlabExportModule::doOutputSpecials().
|
overridevirtual |
Reimplemented from oofem::PrescribedDispSlipHomogenization.
Definition at line 477 of file prescribeddispslipbcdirichletrc.C.
References conBoundSet, oofem::CS_Thickness, oofem::PrescribedDispSlipHomogenization::domainSize(), oofem::CrossSection::give(), oofem::Element::giveCrossSection(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveElement(), oofem::Element::giveGeometryType(), oofem::FEInterpolation::giveIntegrationRule(), oofem::Element::giveInterpolation(), oofem::FEInterpolation::giveInterpolationOrder(), and oofem::GeneralBoundaryCondition::set.
Referenced by computeReinfStress(), computeStress(), computeTangent(), and computeTransferStress().
|
overridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 61 of file prescribeddispslipbcdirichletrc.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::FloatArray::beProductOf(), oofem::IntArray::contains(), oofem::PrescribedDispSlipHomogenization::dispField, oofem::PrescribedDispSlipHomogenization::dispGradient, oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, oofem::DofManager::giveCoordinates(), oofem::Dof::giveDofID(), oofem::Dof::giveDofManager(), oofem::Dof::giveDofManGlobalNumber(), oofem::Set::giveNodeList(), giveOnConcrete(), giveOnSteel(), oofem::GeneralBoundaryCondition::giveTimeFunction(), oofem::PrescribedDispSlipHomogenization::mCenterCoord, OOFEM_ERROR, reinfXBound, reinfYBound, oofem::PrescribedDispSlipHomogenization::slipField, oofem::PrescribedDispSlipHomogenization::slipGradient, and oofem::FloatArray::times().
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 100 of file prescribeddispslipbcdirichletrc.h.
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::BoundaryCondition.
Definition at line 462 of file prescribeddispslipbcdirichletrc.C.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 101 of file prescribeddispslipbcdirichletrc.h.
References _IFT_PrescribedDispSlipBCDirichletRC_Name.
|
protected |
Definition at line 124 of file prescribeddispslipbcdirichletrc.C.
References oofem::FloatArray::at(), and oofem::FloatArray::giveSize().
Referenced by give().
|
protected |
Definition at line 135 of file prescribeddispslipbcdirichletrc.C.
References oofem::FloatArray::at(), oofem::PrescribedDispSlipHomogenization::dispGradient, oofem::FEMComponent::domain, oofem::Dof::giveDofManager(), oofem::DofManager::giveGlobalNumber(), reinfXBound, and reinfYBound.
Referenced by give().
|
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::BoundaryCondition.
Definition at line 437 of file prescribeddispslipbcdirichletrc.C.
References _IFT_PrescribedDispSlipBCDirichletRC_ConcreteBoundary, _IFT_PrescribedDispSlipBCDirichletRC_ReinfXBound, _IFT_PrescribedDispSlipBCDirichletRC_ReinfYBound, conBoundSet, oofem::PrescribedDispSlipHomogenization::dispGradient, dispGradON, oofem::PrescribedDispSlipHomogenization::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, reinfXBound, reinfYBound, oofem::PrescribedDispSlipHomogenization::slipField, oofem::PrescribedDispSlipHomogenization::slipGradient, slipGradON, and slipON.
|
overridevirtual |
Scales the receiver according to given value. Typically used in nondimensional analysis to scale down BCs and ICs.
| s | Scale factor. |
Reimplemented from oofem::BoundaryCondition.
Definition at line 469 of file prescribeddispslipbcdirichletrc.C.
References oofem::PrescribedDispSlipHomogenization::dispField, oofem::PrescribedDispSlipHomogenization::dispGradient, oofem::PrescribedDispSlipHomogenization::slipField, and oofem::PrescribedDispSlipHomogenization::slipGradient.
|
virtual |
Definition at line 169 of file prescribeddispslipbcdirichletrc.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::FloatArray::at(), oofem::FloatArrayF< N >::at(), oofem::FloatMatrix::at(), oofem::IntArray::contains(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, oofem::PrescribedDispSlipHomogenization::giveCenterCoordinate(), oofem::FEMComponent::giveDomain(), oofem::Set::giveNodeList(), OOFEM_ERROR, reinfXBound, reinfYBound, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by computeStress(), and computeTangent().
|
protected |
on/off flag specifying whether the slip gradient should be applied via Neumann BCs
Definition at line 108 of file prescribeddispslipbcdirichletrc.h.
Referenced by domainSize(), and initializeFrom().
|
protected |
Definition at line 104 of file prescribeddispslipbcdirichletrc.h.
Referenced by computeStress(), computeTangent(), and initializeFrom().
|
protected |
Definition at line 109 of file prescribeddispslipbcdirichletrc.h.
Referenced by computeReinfStress(), computeTransferStress(), give(), giveOnSteel(), initializeFrom(), and updateCoefficientMatrix().
|
protected |
Definition at line 110 of file prescribeddispslipbcdirichletrc.h.
Referenced by computeReinfStress(), computeTransferStress(), give(), giveOnSteel(), initializeFrom(), and updateCoefficientMatrix().
|
protected |
on/off flag specifying whether the slip field should be applied via Neumann BCs
Definition at line 106 of file prescribeddispslipbcdirichletrc.h.
Referenced by computeReinfStress(), computeTangent(), and initializeFrom().
|
protected |
on/off flag specifying whether the displacement gradient should be applied via Neumann BCs
Definition at line 105 of file prescribeddispslipbcdirichletrc.h.
Referenced by computeTangent(), computeTransferStress(), and initializeFrom().