|
OOFEM 3.0
|
#include <transportgradientdirichlet.h>
Public Member Functions | |
| TransportGradientDirichlet (int n, Domain *d) | |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| void | postInitialize () override |
| Performs post initialization steps. Called after all components are created and initialized. | |
| double | give (Dof *dof, ValueModeType mode, double time) override |
| bcType | giveType () const override |
| double | domainSize () |
| void | computeCoefficientMatrix (FloatMatrix &C) |
| virtual void | computeField (FloatArray &sigma, TimeStep *tStep) |
| virtual void | computeTangent (FloatMatrix &tangent, TimeStep *tStep) |
| void | computeXi () |
| Computes the offset values for "improved" Dirichlet. See class description. | |
| 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) |
| 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 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). | |
Protected Attributes | |
| FloatArray | mGradient |
| FloatArray | mCenterCoord |
| bool | tractionControl = false |
| std ::map< int, FloatArray > | xis |
| Stores one "psi" value for each node. | |
| IntArray | surfSets |
| 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. | |
Prescribes \( T = g_{i}(x_i-\bar{x}_i) \) where \( T \) are primary unknown. This is typical boundary condition in multiscale analysis where \( g = \partial_x T \) would be a macroscopic gradient at the integration point, i.e. this is a boundary condition for prolongation. It is also convenient to use when one wants to test a arbitrary specimen for a given average gradient.
Definition at line 73 of file transportgradientdirichlet.h.
|
inline |
Definition at line 85 of file transportgradientdirichlet.h.
References oofem::BoundaryCondition::BoundaryCondition().
| void oofem::TransportGradientDirichlet::computeCoefficientMatrix | ( | FloatMatrix & | C | ) |
Constructs a coefficient matrix for all prescribed unknowns. Helper routine for computational homogenization.
| C | Coefficient matrix to fill. |
Definition at line 170 of file transportgradientdirichlet.C.
References oofem::Dof::__givePrescribedEquationNumber(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, oofem::FEMComponent::giveDomain(), mCenterCoord, oofem::FloatMatrix::resize(), tractionControl, xis, and oofem::FloatMatrix::zero().
Referenced by computeField(), and computeTangent().
|
virtual |
Computes the homogenized, macroscopic, field (stress).
| sigma | Output quantity (typically stress). |
| tStep | Active time step. |
Definition at line 201 of file transportgradientdirichlet.C.
References oofem::EngngModel::assembleVector(), oofem::FloatArray::beTProductOf(), computeCoefficientMatrix(), oofem::FEMComponent::domain, domainSize(), oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), oofem::EngngModel::giveNumberOfDomainEquations(), oofem::FloatArray::times(), and oofem::FloatArray::zero().
|
virtual |
Computes the macroscopic tangent for homogenization problems through sensitivity analysis.
| tangent | Output tangent. |
| tStep | Active time step. |
Definition at line 223 of file transportgradientdirichlet.C.
References oofem::EngngModel::assemble(), oofem::FloatMatrix::at(), oofem::FloatMatrix::beTProductOf(), oofem::classFactory, computeCoefficientMatrix(), oofem::CR_CONVERGED, oofem::GeneralBoundaryCondition::dofs, oofem::FEMComponent::domain, domainSize(), oofem::Element_remote, oofem::Timer::getUtime(), oofem::FEMComponent::giveDomain(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::FloatMatrix::giveNumberOfRows(), oofem::Element::giveParallelMode(), oofem::Element::giveRotationMatrix(), oofem::Element::isActivated(), oofem::FloatMatrix::isNotEmpty(), mCenterCoord, OOFEM_ERROR, OOFEM_LOG_INFO, oofem::FloatMatrix::resize(), oofem::FloatMatrix::rotatedWith(), oofem::ST_Petsc, oofem::Timer::startTimer(), oofem::Timer::stopTimer(), oofem::FloatMatrix::subtract(), and oofem::FloatMatrix::times().
| void oofem::TransportGradientDirichlet::computeXi | ( | ) |
Computes the offset values for "improved" Dirichlet. See class description.
Definition at line 341 of file transportgradientdirichlet.C.
References oofem::FloatArray::add(), oofem::FloatArray::assemble(), oofem::FloatMatrix::assemble(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::IntArray::at(), oofem::FloatArray::beProductOf(), oofem::FloatMatrix::beProductOf(), oofem::FloatArray::beScaled(), oofem::FloatArray::beTProductOf(), oofem::FloatMatrix::beTranspositionOf(), oofem::FEInterpolation3d::boundaryEdgeGiveNodes(), oofem::FEInterpolation3d::boundaryEdgeGiveTransformationJacobian(), oofem::FEInterpolation3d::boundaryEvalN(), oofem::FEInterpolation3d::boundaryEvalNormal(), oofem::FEInterpolation3d::boundaryGiveNodes(), oofem::classFactory, oofem::IntArray::containsSorted(), oofem::FEMComponent::domain, oofem::FloatArray::dotProduct(), oofem::FEInterpolation3d::edgeEvaldNdxi(), oofem::IntArray::followedBy(), oofem::IntegrationRule::getIntegrationPoint(), oofem::FEInterpolation3d::giveBoundaryEdgeIntegrationRule(), oofem::FEInterpolation3d::giveBoundaryIntegrationRule(), oofem::Set::giveBoundaryList(), oofem::DofManager::giveCoordinates(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::FEMComponent::giveDomain(), oofem::Element::giveGeometryType(), oofem::Element::giveInterpolation(), oofem::FEInterpolation::giveInterpolationOrder(), oofem::Element::giveNode(), oofem::Set::giveNodeList(), oofem::FEMComponent::giveNumber(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::FloatMatrix::giveNumberOfRows(), oofem::FloatArray::giveSize(), oofem::IntArray::giveSize(), oofem::IntArray::insertSortedOnce(), oofem::FloatMatrix::negated(), oofem::FloatArray::normalize(), OOFEM_LOG_INFO, oofem::FloatMatrix::plusDyadSymmUpper(), oofem::FloatMatrix::plusDyadUnsym(), oofem::FloatMatrix::plusProductSymmUpper(), oofem::IntArray::preallocate(), oofem::FloatArray::resize(), oofem::FloatMatrix::resize(), oofem::Set::setEdgeList(), oofem::ST_Petsc, oofem::FEInterpolation3d::surfaceEvaldNdx(), surfSets, oofem::FloatMatrix::symmetrized(), oofem::FloatArray::times(), and xis.
Referenced by postInitialize().
| double oofem::TransportGradientDirichlet::domainSize | ( | ) |
Definition at line 140 of file transportgradientdirichlet.C.
References oofem::IntArray::at(), oofem::FEMComponent::domain, oofem::FEInterpolation::evalNXIntegral(), oofem::FEMComponent::giveDomain(), oofem::Element::giveInterpolation(), oofem::IntArray::giveSize(), oofem::GeneralBoundaryCondition::set, surfSets, and tractionControl.
Referenced by computeField(), and computeTangent().
|
overridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 110 of file transportgradientdirichlet.C.
References oofem::FloatArray::add(), oofem::DofManager::giveCoordinates(), oofem::Dof::giveDofManager(), oofem::FEMComponent::giveNumber(), oofem::GeneralBoundaryCondition::giveTimeFunction(), mCenterCoord, mGradient, OOFEM_ERROR, and xis.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 123 of file transportgradientdirichlet.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 88 of file transportgradientdirichlet.C.
References _IFT_TransportGradientDirichlet_centerCoords, _IFT_TransportGradientDirichlet_gradient, _IFT_TransportGradientDirichlet_surfSets, _IFT_TransportGradientDirichlet_tractionControl, mCenterCoord, mGradient, oofem::DynamicInputRecord::setField(), surfSets, and tractionControl.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 124 of file transportgradientdirichlet.h.
References _IFT_TransportGradientDirichlet_Name.
|
inlineoverridevirtual |
Reimplemented from oofem::BoundaryCondition.
Definition at line 93 of file transportgradientdirichlet.h.
References oofem::DirichletBT.
|
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 71 of file transportgradientdirichlet.C.
References _IFT_TransportGradientDirichlet_centerCoords, _IFT_TransportGradientDirichlet_gradient, _IFT_TransportGradientDirichlet_surfSets, _IFT_TransportGradientDirichlet_tractionControl, oofem::InputRecord::hasField(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, mCenterCoord, mGradient, surfSets, and tractionControl.
|
overridevirtual |
Performs post initialization steps. Called after all components are created and initialized.
Reimplemented from oofem::FEMComponent.
Definition at line 102 of file transportgradientdirichlet.C.
References computeXi(), and tractionControl.
|
inlineoverridevirtual |
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 121 of file transportgradientdirichlet.h.
References mGradient.
|
protected |
Definition at line 77 of file transportgradientdirichlet.h.
Referenced by computeCoefficientMatrix(), computeTangent(), give(), giveInputRecord(), and initializeFrom().
|
protected |
Definition at line 76 of file transportgradientdirichlet.h.
Referenced by give(), giveInputRecord(), initializeFrom(), and scale().
|
protected |
Definition at line 82 of file transportgradientdirichlet.h.
Referenced by computeXi(), domainSize(), giveInputRecord(), and initializeFrom().
|
protected |
Definition at line 79 of file transportgradientdirichlet.h.
Referenced by computeCoefficientMatrix(), domainSize(), giveInputRecord(), initializeFrom(), and postInitialize().
|
protected |
Stores one "psi" value for each node.
Definition at line 81 of file transportgradientdirichlet.h.
Referenced by computeCoefficientMatrix(), computeXi(), and give().