OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class implementing Dirichlet boundary condition on DOF (primary boundary condition). More...
#include <boundarycondition.h>
Public Member Functions | |
BoundaryCondition (int i, Domain *d) | |
Constructor. More... | |
virtual | ~BoundaryCondition () |
Destructor. More... | |
virtual double | give (Dof *dof, ValueModeType mode, TimeStep *tStep) |
Returns the value of a prescribed unknown, respecting requested mode for given time. More... | |
virtual double | give (Dof *dof, ValueModeType mode, double time) |
void | setPrescribedValue (double s) |
Set prescribed value at the input record string of receiver. More... | |
virtual bcType | giveType () const |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
virtual void | scale (double s) |
Scales the receiver according to given value. More... | |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores receiver state to output stream. More... | |
virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores the receiver state previously written in stream. More... | |
Public Member Functions inherited from oofem::GeneralBoundaryCondition | |
GeneralBoundaryCondition (int n, Domain *d) | |
Constructor. More... | |
virtual | ~GeneralBoundaryCondition () |
Destructor. More... | |
int | giveSetNumber () |
Gives the set number which boundary condition is applied to. More... | |
virtual int | giveNumberOfInternalDofManagers () |
Gives the number of internal dof managers. More... | |
virtual DofManager * | giveInternalDofManager (int i) |
Gives an internal dof manager from receiver. More... | |
Function * | giveTimeFunction () |
virtual bcValType | giveBCValType () const |
Returns receiver load type. More... | |
virtual bool | isImposed (TimeStep *tStep) |
Returns nonzero if receiver representing BC is imposed at given time, otherwise returns zero. More... | |
virtual const IntArray & | giveDofIDs () const |
Array with default dofs which b.c. More... | |
virtual bcGeomType | giveBCGeoType () const |
Returns geometry character of boundary condition. More... | |
virtual void | postInitialize () |
Performs post initialization steps. More... | |
Public Member Functions inherited from oofem::FEMComponent | |
FEMComponent (int n, Domain *d) | |
Regular constructor, creates component with given number and belonging to given domain. More... | |
virtual | ~FEMComponent () |
Virtual destructor. More... | |
Domain * | giveDomain () const |
virtual void | setDomain (Domain *d) |
Sets associated Domain. More... | |
int | giveNumber () const |
void | setNumber (int num) |
Sets number of receiver. More... | |
virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
Local renumbering support. More... | |
virtual int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). More... | |
Protected Attributes | |
FloatArray | values |
Prescribed values for each resp. dof. More... | |
Protected Attributes inherited from oofem::GeneralBoundaryCondition | |
int | timeFunction |
Associated load time function. More... | |
bcValType | valType |
Physical meaning of BC value. More... | |
IntArray | dofs |
Dofs that b.c. is applied to (relevant for Dirichlet type b.c.s). More... | |
int | isImposedTimeFunction |
Zero by default - the BC is than always imposed. More... | |
int | set |
Set number for boundary condition to be applied to. More... | |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Class implementing Dirichlet boundary condition on DOF (primary boundary condition).
This boundary condition is usually attribute of one or more degrees of freedom (DOF).
The type of unknown (physical meaning) is fully determined by corresponding DOF, to which given BC is associated. The previous implementation uses the 'prescribedValueDictionary' to store the unknowns types, but this makes sense, when BC is associated to node, but when associated to BC, the physical meaning of unknown is determined by DOF.
Boundary condition can change its value in time using its inherited TimeFunction. It can also switch itself on or off depending on nonzero value of isImposedTimeFunction load time function. Please note, that previous option must be supported by particular engineering model (because equation renumbering is necessary, and for incremental solution schemes DOFs unknown dictionaries must be used). See particular engineering model documentation for details.
The services provided include
Definition at line 83 of file boundarycondition.h.
|
inline |
Constructor.
Creates boundary condition with given number, belonging to given domain.
i | Boundary condition number. |
d | Domain to which new object will belongs. |
Definition at line 95 of file boundarycondition.h.
|
inlinevirtual |
Destructor.
Definition at line 98 of file boundarycondition.h.
|
virtual |
Returns the value of a prescribed unknown, respecting requested mode for given time.
Its physical meaning is determined by corresponding DOF. This function should only be used if the BC is imposed.
dof | Determines the dof subjected to receiver BC. |
mode | Unknown char type (if total or incremental value is returned). |
tStep | Time step to give value for. |
Reimplemented in oofem::InteractionBoundaryCondition.
Definition at line 48 of file boundarycondition.C.
References oofem::TimeStep::giveIntrinsicTime(), oofem::TimeStep::giveTargetTime(), and oofem::TimeStep::giveTimeIncrement().
Referenced by oofem::DofDistributedPrimaryField::applyBoundaryCondition(), oofem::PrimaryField::applyBoundaryCondition(), oofem::Dof::giveBcValue(), and oofem::GnuplotExportModule::outputReactionForces().
|
virtual |
Reimplemented in oofem::TransportGradientDirichlet, oofem::UserDefDirichletBC, oofem::PrescribedGenStrainShell7, oofem::PrescribedGenStrainShell7, oofem::RotatingBoundary, oofem::PrescribedGradient, and oofem::TractionPressureBC.
Definition at line 58 of file boundarycondition.C.
References oofem::FloatArray::at(), oofem::GeneralBoundaryCondition::dofs, oofem::Function::evaluateAccelerationAtTime(), oofem::Function::evaluateAtTime(), oofem::Function::evaluateVelocityAtTime(), oofem::IntArray::findFirstIndexOf(), oofem::Dof::giveDofID(), oofem::GeneralBoundaryCondition::giveTimeFunction(), OOFEM_ERROR, and values.
|
inlinevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::PrescribedGenStrainShell7, oofem::TransportGradientDirichlet, oofem::PrescribedGenStrainShell7, oofem::PrescribedGradient, oofem::UserDefDirichletBC, oofem::RotatingBoundary, oofem::InteractionBoundaryCondition, and oofem::TractionPressureBC.
Definition at line 125 of file boundarycondition.h.
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::GeneralBoundaryCondition.
Reimplemented in oofem::PrescribedGenStrainShell7, oofem::UserDefDirichletBC, oofem::TransportGradientDirichlet, oofem::PrescribedGenStrainShell7, oofem::PrescribedGradient, and oofem::RotatingBoundary.
Definition at line 113 of file boundarycondition.C.
References _IFT_BoundaryCondition_values, oofem::GeneralBoundaryCondition::giveInputRecord(), oofem::DynamicInputRecord::setField(), and values.
Referenced by oofem::PrescribedGenStrainShell7::computeTangent(), and oofem::PrescribedGenStrainShell7::giveInputRecord().
|
inlinevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::PrescribedGenStrainShell7, oofem::TransportGradientDirichlet, oofem::PrescribedGenStrainShell7, oofem::PrescribedGradient, oofem::UserDefDirichletBC, oofem::RotatingBoundary, oofem::InteractionBoundaryCondition, and oofem::TractionPressureBC.
Definition at line 126 of file boundarycondition.h.
References _IFT_BoundaryCondition_Name.
|
inlinevirtual |
Reimplemented from oofem::GeneralBoundaryCondition.
Reimplemented in oofem::TransportGradientDirichlet, oofem::UserDefDirichletBC, oofem::PrescribedGenStrainShell7, oofem::PrescribedGenStrainShell7, and oofem::PrescribedGradient.
Definition at line 121 of file boundarycondition.h.
References oofem::DirichletBT.
|
virtual |
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.
ir | Input record to initialize from. |
Reimplemented from oofem::GeneralBoundaryCondition.
Reimplemented in oofem::PrescribedGenStrainShell7, oofem::UserDefDirichletBC, oofem::TransportGradientDirichlet, oofem::PrescribedGenStrainShell7, oofem::PrescribedGradient, and oofem::RotatingBoundary.
Definition at line 80 of file boundarycondition.C.
References _IFT_BoundaryCondition_PrescribedValue, _IFT_BoundaryCondition_PrescribedValue_d, _IFT_BoundaryCondition_values, oofem::FloatArray::add(), oofem::GeneralBoundaryCondition::dofs, oofem::IntArray::giveSize(), oofem::InputRecord::hasField(), oofem::GeneralBoundaryCondition::initializeFrom(), IR_GIVE_FIELD, oofem::IRRT_OK, oofem::FloatArray::resize(), values, and oofem::FloatArray::zero().
|
virtual |
Restores the receiver state previously written in stream.
stream | Input stream. |
mode | Determines amount of info available in stream (state, definition, ...). |
obj | Special parameter for sending extra information. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::GeneralBoundaryCondition.
Definition at line 154 of file boundarycondition.C.
References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, oofem::GeneralBoundaryCondition::restoreContext(), oofem::FloatArray::restoreYourself(), THROW_CIOERR, and values.
|
virtual |
Stores receiver state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
obj | Special parameter, used only to send particular integration point to material class version of this method. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::GeneralBoundaryCondition.
Definition at line 136 of file boundarycondition.C.
References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, oofem::GeneralBoundaryCondition::saveContext(), oofem::FloatArray::storeYourself(), THROW_CIOERR, and values.
|
virtual |
Scales the receiver according to given value.
Typically used in nondimensional analysis to scale down BCs and ICs.
s | Scale factor. |
Reimplemented from oofem::GeneralBoundaryCondition.
Reimplemented in oofem::TransportGradientDirichlet, oofem::PrescribedGenStrainShell7, oofem::PrescribedGradient, oofem::UserDefDirichletBC, oofem::RotatingBoundary, and oofem::TractionPressureBC.
Definition at line 129 of file boundarycondition.C.
References oofem::FloatArray::times(), and values.
void oofem::BoundaryCondition::setPrescribedValue | ( | double | s | ) |
Set prescribed value at the input record string of receiver.
s | prescribed value |
Definition at line 121 of file boundarycondition.C.
References oofem::FloatArray::add(), values, and oofem::FloatArray::zero().
Referenced by oofem::SolutionbasedShapeFunction::setBoundaryConditionOnDof().
|
protected |
Prescribed values for each resp. dof.
Definition at line 87 of file boundarycondition.h.
Referenced by give(), giveInputRecord(), initializeFrom(), restoreContext(), saveContext(), scale(), and setPrescribedValue().