OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Fluid cross-section. More...
#include <fluidcrosssection.h>
Public Member Functions | |
FluidCrossSection (int n, Domain *d) | |
Constructor. More... | |
virtual | ~FluidCrossSection () |
Destructor. More... | |
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 int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual bool | isCharacteristicMtrxSymmetric (MatResponseMode rMode) |
Check for symmetry of stiffness matrix. More... | |
virtual int | giveIPValue (FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep) |
Returns the integration point corresponding value in Reduced form. More... | |
virtual double | giveDensity (GaussPoint *gp) |
FluidDynamicMaterial * | giveFluidMaterial () |
Material * | giveMaterial (IntegrationPoint *ip) |
Returns the material associated with the GP. More... | |
virtual int | packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) |
Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. More... | |
virtual int | unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *gp) |
Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer. More... | |
virtual int | estimatePackSize (DataStream &buff, GaussPoint *gp) |
Estimates the necessary pack size to hold all packed data of receiver. More... | |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
Public Member Functions inherited from oofem::CrossSection | |
CrossSection (int n, Domain *d) | |
Constructor. More... | |
virtual | ~CrossSection () |
Destructor. More... | |
int | giveSetNumber () const |
virtual bool | hasProperty (CrossSectionProperty a) |
Returns true if the dictionary contains the requested property. More... | |
virtual double | give (CrossSectionProperty a, GaussPoint *gp) |
Returns the value of cross section property at given point. More... | |
virtual double | give (CrossSectionProperty a, const FloatArray &coords, Element *elem, bool local=true) |
Returns the value of cross section property at given point (belonging to given element). More... | |
virtual double | give (int aProperty, GaussPoint *gp) |
Returns the value of cross section property. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual int | setupIntegrationPoints (IntegrationRule &irule, int npoints, Element *element) |
Sets up integration rule for the given element. More... | |
virtual int | setupIntegrationPoints (IntegrationRule &irule, int npointsXY, int npointsZ, Element *element) |
Sets up integration rule for the given element. More... | |
virtual int | testCrossSectionExtension (CrossSectExtension ext) |
Returns nonzero, if receiver implements required extension. More... | |
virtual double | predictRelativeComputationalCost (GaussPoint *ip) |
Returns the weight representing relative computational cost of receiver The reference cross section is integral model in plane stress. More... | |
virtual double | giveRelativeSelfComputationalCost () |
Returns the weight representing relative computational cost of receiver The reference element is integral model in plane stress. More... | |
virtual double | predictRelativeRedistributionCost (GaussPoint *gp) |
virtual contextIOResultType | saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
Stores integration point state to output stream. More... | |
virtual contextIOResultType | restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
Reads integration point state to output stream. 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 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... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. 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 | |
int | matNumber |
Protected Attributes inherited from oofem::CrossSection | |
Dictionary | propertyDictionary |
Dictionary for storing cross section parameters (like dimensions). More... | |
int | setNumber |
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... | |
Fluid cross-section.
It's functionality is essentially only to keep track of the material used.
Definition at line 51 of file fluidcrosssection.h.
oofem::FluidCrossSection::FluidCrossSection | ( | int | n, |
Domain * | d | ||
) |
Constructor.
Creates cross section with number n belonging to domain d.
n | Cross section number. |
d | Domain for cross section. |
Definition at line 44 of file fluidcrosssection.C.
|
virtual |
Destructor.
Definition at line 46 of file fluidcrosssection.C.
|
virtual |
Allows programmer to test some internal data, before computation begins.
For example, one may use this function, to ensure that element has material with required capabilities is assigned to element. This must be done after all mesh components are instanciated.
Reimplemented from oofem::FEMComponent.
Definition at line 70 of file fluidcrosssection.C.
References oofem::FEMComponent::checkConsistency(), oofem::FEMComponent::domain, oofem::Domain::giveMaterial(), and matNumber.
|
virtual |
Estimates the necessary pack size to hold all packed data of receiver.
The corresponding material model service is invoked. The nature of packed data is typically material model dependent.
buff | Communication buffer. |
ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 128 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Material::estimatePackSize(), oofem::Domain::giveMaterial(), and matNumber.
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 82 of file fluidcrosssection.h.
|
virtual |
Definition at line 78 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Material::give(), oofem::Domain::giveMaterial(), and matNumber.
FluidDynamicMaterial * oofem::FluidCrossSection::giveFluidMaterial | ( | ) |
Definition at line 99 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Domain::giveMaterial(), and matNumber.
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::CrossSection.
Definition at line 61 of file fluidcrosssection.C.
References _IFT_FluidCrossSection_material, oofem::CrossSection::giveInputRecord(), matNumber, and oofem::DynamicInputRecord::setField().
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 83 of file fluidcrosssection.h.
References _IFT_FluidCrossSection_Name.
|
virtual |
Returns the integration point corresponding value in Reduced form.
answer | contain corresponding ip value, zero sized if not available |
ip | Integration point. |
type | Determines the type of internal variable. |
tStep | Time step. |
Reimplemented from oofem::CrossSection.
Definition at line 85 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Material::giveIPValue(), oofem::Domain::giveMaterial(), and matNumber.
|
virtual |
Returns the material associated with the GP.
Default implementation uses gp->giveMaterial() for backwards compatibility, but it should be overloaded in each specialized cross-section.
Implements oofem::CrossSection.
Definition at line 105 of file fluidcrosssection.C.
References oofem::FEMComponent::giveDomain(), oofem::GaussPoint::giveElement(), oofem::Domain::giveMaterial(), oofem::Element::giveMaterial(), and matNumber.
|
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::CrossSection.
Definition at line 50 of file fluidcrosssection.C.
References _IFT_FluidCrossSection_material, oofem::CrossSection::initializeFrom(), IR_GIVE_FIELD, and matNumber.
|
virtual |
Check for symmetry of stiffness matrix.
Default implementation returns true. It can be moved to base Cross section class in the future.
rMode | Response mode of material. |
Reimplemented from oofem::CrossSection.
Definition at line 92 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Domain::giveMaterial(), oofem::Material::isCharacteristicMtrxSymmetric(), and matNumber.
|
virtual |
Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer.
The corresponding material model service for particular integration point is invoked. The nature of packed data is material model dependent. Typically, for material of "local" response (response depends only on integration point local state) no data are exchanged. For "nonlocal" constitutive models the send/receive of local values which undergo averaging is performed between local and corresponding remote elements.
buff | Communication buffer. |
tStep | Solution step. |
ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 116 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Domain::giveMaterial(), matNumber, and oofem::Material::packUnknowns().
|
virtual |
Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer.
buff | Communication buffer. |
tStep | Solution step. |
ip | Integration point. |
Implements oofem::CrossSection.
Definition at line 122 of file fluidcrosssection.C.
References oofem::FEMComponent::domain, oofem::Domain::giveMaterial(), matNumber, and oofem::Material::unpackAndUpdateUnknowns().
|
protected |
Definition at line 54 of file fluidcrosssection.h.
Referenced by checkConsistency(), estimatePackSize(), giveDensity(), giveFluidMaterial(), giveInputRecord(), giveIPValue(), giveMaterial(), initializeFrom(), isCharacteristicMtrxSymmetric(), packUnknowns(), and unpackAndUpdateUnknowns().