OOFEM 3.0
Loading...
Searching...
No Matches
oofem::FreeConstantSurfaceLoad Class Reference

#include <freeconstantsurfaceload.h>

Inheritance diagram for oofem::FreeConstantSurfaceLoad:
Collaboration diagram for oofem::FreeConstantSurfaceLoad:

Public Member Functions

 FreeConstantSurfaceLoad (int i, Domain *d)
void computeValueAt (FloatArray &answer, TimeStep *tStep, const FloatArray &coords, ValueModeType mode) override
int giveApproxOrder () override
void updateLoad (const FloatArray &newValue)
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
bcGeomType giveBCGeoType () const override
const char * giveClassName () const override
const char * giveInputRecordName () const override
double giveLoadOffset ()
bool isImposed (TimeStep *tStep) override
Public Member Functions inherited from oofem::SurfaceLoad
 SurfaceLoad (int i, Domain *d)
Public Member Functions inherited from oofem::BoundaryLoad
 BoundaryLoad (int i, Domain *d)
CoordSystType giveCoordSystMode () override
bcType giveType () const override
virtual double giveProperty (int aProperty, TimeStep *tStep, const std ::map< std ::string, FunctionArgument > &valDict) const
double giveProperty (int aProperty, TimeStep *tStep) const override
virtual double giveTemperOffset (void)
 Return temperature offset.
Public Member Functions inherited from oofem::Load
 Load (int n, Domain *d)
virtual ~Load ()
 Destructor.
virtual void computeValueAt (FloatArray &answer, TimeStep *tStep, GaussPoint *gp, ValueModeType mode)
virtual void computeValues (FloatArray &answer, TimeStep *tStep, const FloatArray &coords, const IntArray &dofids, ValueModeType mode)
int isDofExcluded (int index)
void scale (double s) override
virtual FormulationType giveFormulationType ()
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
const FloatArraygiveComponentArray () const
void setComponentArray (FloatArray &arry)
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 DofManagergiveInternalDofManager (int i)
 Gives an internal dof manager from receiver.
FunctiongiveTimeFunction ()
int getIsImposedTimeFunctionNumber () const
void setIsImposedTimeFunctionNumber (int funcIndx)
virtual bcValType giveBCValType () const
virtual const IntArraygiveDofIDs () const
virtual void updateYourself (TimeStep *tStep)
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
DomaingiveDomain () 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 InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Private Member Functions

void computeNArray (FloatArray &answer, const FloatArray &coords) const override

Private Attributes

double loadOffset
bool alreadyDisabled = false

Additional Inherited Members

Public Types inherited from oofem::BoundaryLoad
enum  BL_CoordSystType { BL_GlobalMode , BL_LocalMode , BL_UpdatedGlobalMode }
Public Types inherited from oofem::Load
enum  CoordSystType { CST_Global , CST_Local , CST_UpdatedGlobal }
enum  FormulationType { FT_Entity , FT_Global }
Public Attributes inherited from oofem::BoundaryLoad
CoordSystType CST_UpdatedGlobal
ScalarFunction propertyMultExpr
 Expression to multiply all properties.
Public Attributes inherited from oofem::Load
bool reference
Protected Member Functions inherited from oofem::BoundaryLoad
void computeComponentArrayAt (FloatArray &answer, TimeStep *tStep, ValueModeType mode) override
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
Protected Attributes inherited from oofem::BoundaryLoad
bcType lType
 Load type (its physical meaning).
CoordSystType coordSystemType
 Load coordinate system.
Dictionary propertyDictionary
 Additional b.c properties.
Dictionary propertyTimeFunctDictionary
 Optional time-functions for properties.
double temperOffset
 Temperature offset with regards to Kelvin. Default is 273.15.
Protected Attributes inherited from oofem::Load
FloatArray componentArray
 Components of boundary condition.
IntArray dofExcludeMask
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.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

This class implements a boundary load (force, moment,...) that acts directly on a boundary of some finite element (on side, face, ..). A boundary load is usually attribute of one or more elements.

The boundary load describes its geometry and values (it is assumed, that user will specify all necessary dofs) on element boundary using isoparametric approximation. Elements can request the order of approximation (for setting up the appropriate integration rule order) and the array of values (for each dof) at specific integration point on the boundary.

Elements must take care, on which boundary the load acts on (side number, ...).

For some elements it may be better to obtain "vertex values" of boundary load to compute load vector directly using exact formulae.

This class is not restricted to structural problems. For example, in thermal analysis, a boundary load load would be a heat source.

Definition at line 68 of file freeconstantsurfaceload.h.

Constructor & Destructor Documentation

◆ FreeConstantSurfaceLoad()

oofem::FreeConstantSurfaceLoad::FreeConstantSurfaceLoad ( int i,
Domain * d )

Definition at line 53 of file freeconstantsurfaceload.C.

References loadOffset, and oofem::SurfaceLoad::SurfaceLoad().

Member Function Documentation

◆ computeNArray()

void oofem::FreeConstantSurfaceLoad::computeNArray ( FloatArray & answer,
const FloatArray & coords ) const
inlineoverrideprivatevirtual

Abstract function, for computing approximation matrix of receiver at given point. The product of approximation matrix with "vertex" values array attribute will produce load components in given point.

Parameters
answerApproximation vector.
coordsGlobal integration point coordinates.

Implements oofem::BoundaryLoad.

Definition at line 94 of file freeconstantsurfaceload.h.

References oofem::FloatArray::clear().

◆ computeValueAt()

void oofem::FreeConstantSurfaceLoad::computeValueAt ( FloatArray & answer,
TimeStep * tStep,
const FloatArray & coords,
ValueModeType mode )
overridevirtual

Computes components values of load at given point - global coordinates (coordinates given).

Parameters
answerComponent values at given point and time.
tStepTime step representing time.
coordsGlobal (or local) problem coordinates, which are used to evaluate components values.
modeDetermines response mode.

Reimplemented from oofem::BoundaryLoad.

Definition at line 94 of file freeconstantsurfaceload.C.

References oofem::FloatArray::beScaled(), oofem::Load::componentArray, oofem::GeneralBoundaryCondition::giveTimeFunction(), and OOFEM_ERROR.

◆ giveApproxOrder()

int oofem::FreeConstantSurfaceLoad::giveApproxOrder ( )
inlineoverridevirtual
Returns
Approximation order of load geometry.

Implements oofem::BoundaryLoad.

Definition at line 75 of file freeconstantsurfaceload.h.

◆ giveBCGeoType()

bcGeomType oofem::FreeConstantSurfaceLoad::giveBCGeoType ( ) const
inlineoverridevirtual

Returns geometry character of boundary condition. For available values see cltypes.h file. Derived classes should always overload, default implementation returns UnknownLoadGT value.

Reimplemented from oofem::GeneralBoundaryCondition.

Definition at line 85 of file freeconstantsurfaceload.h.

References oofem::SurfaceLoadBGT.

◆ giveClassName()

const char * oofem::FreeConstantSurfaceLoad::giveClassName ( ) const
inlineoverridevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 87 of file freeconstantsurfaceload.h.

◆ giveInputRecord()

void oofem::FreeConstantSurfaceLoad::giveInputRecord ( DynamicInputRecord & input)
overridevirtual

Setups the input record string of receiver.

Parameters
inputDynamic input record to be filled by receiver.

Reimplemented from oofem::BoundaryLoad.

Definition at line 87 of file freeconstantsurfaceload.C.

References _IFT_FreeConstantSurfaceLoad_LoadOffset, loadOffset, and oofem::DynamicInputRecord::setField().

◆ giveInputRecordName()

const char * oofem::FreeConstantSurfaceLoad::giveInputRecordName ( ) const
inlineoverridevirtual
Returns
Input record name of the receiver.

Implements oofem::FEMComponent.

Definition at line 88 of file freeconstantsurfaceload.h.

References _IFT_FreeConstantSurfaceLoad_Name.

◆ giveLoadOffset()

double oofem::FreeConstantSurfaceLoad::giveLoadOffset ( )
inline

Definition at line 89 of file freeconstantsurfaceload.h.

References loadOffset.

◆ initializeFrom()

void oofem::FreeConstantSurfaceLoad::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver according to object description stored in input record. Reads number of dofs into nDofs attribute (i.e. the number of dofs, which are on loaded entity), its loadType into loadType attribute and coordinate system type into csType attribute.

Reimplemented from oofem::BoundaryLoad.

Definition at line 59 of file freeconstantsurfaceload.C.

References _IFT_BoundaryLoad_cstype, _IFT_BoundaryLoad_loadtype, _IFT_BoundaryLoad_properties, _IFT_BoundaryLoad_propertyMultExpr, _IFT_BoundaryLoad_propertyTimeFunctions, _IFT_BoundaryLoad_temperOffset, _IFT_FreeConstantSurfaceLoad_LoadOffset, oofem::BoundaryLoad::coordSystemType, IR_GIVE_OPTIONAL_FIELD, loadOffset, oofem::BoundaryLoad::lType, oofem::BoundaryLoad::propertyDictionary, oofem::BoundaryLoad::propertyMultExpr, oofem::BoundaryLoad::propertyTimeFunctDictionary, and oofem::BoundaryLoad::temperOffset.

◆ isImposed()

bool oofem::FreeConstantSurfaceLoad::isImposed ( TimeStep * tStep)
overridevirtual

Returns nonzero if receiver representing BC is imposed at given time, otherwise returns zero.

Parameters
tStepTime step representing time when receiver is tested.
Returns
True if imposed for given time, false otherwise.

Reimplemented from oofem::GeneralBoundaryCondition.

Definition at line 104 of file freeconstantsurfaceload.C.

References alreadyDisabled, oofem::IntArray::at(), oofem::FEMComponent::domain, oofem::Element::giveBoundarySurfaceNodes(), oofem::Element::giveDofManagerNumber(), oofem::FEMComponent::giveNumber(), oofem::IntArray::giveSize(), and oofem::GeneralBoundaryCondition::set.

◆ updateLoad()

void oofem::FreeConstantSurfaceLoad::updateLoad ( const FloatArray & newValue)
inline

Sets a new load vector.

Parameters
newValueNew load.

Definition at line 81 of file freeconstantsurfaceload.h.

References oofem::Load::componentArray.

Member Data Documentation

◆ alreadyDisabled

bool oofem::FreeConstantSurfaceLoad::alreadyDisabled = false
private

Definition at line 96 of file freeconstantsurfaceload.h.

Referenced by isImposed().

◆ loadOffset

double oofem::FreeConstantSurfaceLoad::loadOffset
private

The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011