|
void | CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
| Calculate the elemental contribution to the problem. More...
|
|
|
| KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (CrankNicolsonWaveElement) |
|
|
| CrankNicolsonWaveElement () |
| Default constructor. More...
|
|
| CrankNicolsonWaveElement (IndexType NewId, const NodesArrayType &ThisNodes) |
| Constructor using an array of nodes. More...
|
|
| CrankNicolsonWaveElement (IndexType NewId, GeometryType::Pointer pGeometry) |
| Constructor using Geometry. More...
|
|
| CrankNicolsonWaveElement (IndexType NewId, GeometryType::Pointer pGeometry, typename PropertiesType::Pointer pProperties) |
| Constructor using Geometry and Properties. More...
|
|
| ~ CrankNicolsonWaveElement () override |
| Destructor. More...
|
|
|
Element::Pointer | Create (IndexType NewId, NodesArrayType const &ThisNodes, typename PropertiesType::Pointer pProperties) const override |
| Create a new element pointer. More...
|
|
Element::Pointer | Create (IndexType NewId, GeometryType::Pointer pGeom, typename PropertiesType::Pointer pProperties) const override |
| Create a new element pointer. More...
|
|
Element::Pointer | Clone (IndexType NewId, NodesArrayType const &ThisNodes) const override |
| Create a new element pointer and clone the previous element data. More...
|
|
void | CalculateLocalSystem (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override |
| Calculate the elemental contribution to the problem. More...
|
|
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override |
| Calculate the elemental mass matrix. More...
|
|
|
std::string | Info () const override |
| Turn back information as a string. More...
|
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const |
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const |
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const |
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const |
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const |
|
| WaveElement () |
| Default constructor. More...
|
|
| WaveElement (IndexType NewId, const NodesArrayType &ThisNodes) |
| Constructor using an array of nodes. More...
|
|
| WaveElement (IndexType NewId, GeometryType::Pointer pGeometry) |
| Constructor using Geometry. More...
|
|
| WaveElement (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) |
| Constructor using Geometry and Properties. More...
|
|
| ~ WaveElement () override |
| Destructor. More...
|
|
Element::Pointer | Create (IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override |
| Create a new element pointer. More...
|
|
Element::Pointer | Create (IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override |
| Create a new element pointer. More...
|
|
Element::Pointer | Clone (IndexType NewId, NodesArrayType const &ThisNodes) const override |
| Create a new element pointer and clone the previous element data. More...
|
|
int | Check (const ProcessInfo &rCurrentProcessInfo) const override |
| Check that all required data containers are properly initialized and registered in Kratos. More...
|
|
void | EquationIdVector (EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override |
| Fill given vector with the linear system row index for the element's degrees of freedom. More...
|
|
void | GetDofList (DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override |
| Fill given array with containing the element's degrees of freedom. More...
|
|
void | GetValuesVector (Vector &rValues, int Step=0) const override |
| Get the variable which defines the degrees of freedom. More...
|
|
void | GetFirstDerivativesVector (Vector &rValues, int Step=0) const override |
| Get the time derivative of variable which defines the degrees of freedom. More...
|
|
void | GetSecondDerivativesVector (Vector &rValues, int Step=0) const override |
| Get the second time derivative of variable which defines the degrees of freedom. More...
|
|
void | CalculateOnIntegrationPoints (const Variable< double > &rVariable, std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) override |
| Access for variables on Integration points. More...
|
|
void | Calculate (const Variable< array_1d< double, 3 >> &rVariable, array_1d< double, 3 > &rOutput, const ProcessInfo &rCurrentProcessInfo) override |
| Access for variables on Integration points. More...
|
|
void | InitializeSolutionStep (const ProcessInfo &rCurrentProcessInfo) override |
| Is called in the beginning of each solution step. More...
|
|
void | CalculateMassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override |
| Calculate the elemental mass matrix. More...
|
|
void | CalculateDampingMatrix (MatrixType &rDampingMatrix, const ProcessInfo &rCurrentProcessInfo) override |
| Calculate the diffusion matrix for monotonic corrected schemes. More...
|
|
GeometryData::IntegrationMethod | GetIntegrationMethod () const override |
| GetIntegrationMethod Return the integration order to be used. More...
|
|
const Parameters | GetSpecifications () const override |
| This method provides the specifications/requirements of the element. More...
|
|
std::string | Info () const override |
| Turn back information as a string. More...
|
|
void | PrintInfo (std::ostream &rOStream) const override |
| Print information about this object. More...
|
|
void | PrintData (std::ostream &rOStream) const override |
| Print object's data. More...
|
|
| KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (WaveElement) |
| Pointer definition. More...
|
|
| Element (IndexType NewId=0) |
|
| Element (IndexType NewId, const NodesArrayType &ThisNodes) |
|
| Element (IndexType NewId, GeometryType::Pointer pGeometry) |
|
| Element (IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties) |
|
| Element (Element const &rOther) |
| Copy constructor. More...
|
|
| ~Element () override |
| Destructor. More...
|
|
Element & | operator= (Element const &rOther) |
| Assignment operator. More...
|
|
virtual void | Initialize (const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | ResetConstitutiveLaw () |
|
virtual void | InitializeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | FinalizeNonLinearIteration (const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | FinalizeSolutionStep (const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateLeftHandSide (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateRightHandSide (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateFirstDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateFirstDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateFirstDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateSecondDerivativesContributions (MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateSecondDerivativesLHS (MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateSecondDerivativesRHS (VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateLumpedMassVector (VectorType &rLumpedMassVector, const ProcessInfo &rCurrentProcessInfo) const |
|
virtual void | AddExplicitContribution (const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< double > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
| This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the double version) More...
|
|
virtual void | AddExplicitContribution (const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< array_1d< double, 3 > > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
| This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the vector version) More...
|
|
virtual void | AddExplicitContribution (const MatrixType &rLHSMatrix, const Variable< MatrixType > &rLHSVariable, const Variable< Matrix > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) |
| This function is designed to make the element to assemble an rRHS vector identified by a variable rRHSVariable by assembling it to the nodes on the variable rDestinationVariable. (This is the matrix version) More...
|
|
virtual void | Calculate (const Variable< double > &rVariable, double &Output, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | Calculate (const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &Output, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | Calculate (const Variable< Vector > &rVariable, Vector &Output, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | Calculate (const Variable< Matrix > &rVariable, Matrix &Output, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< bool > &rVariable, std::vector< bool > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< int > &rVariable, std::vector< int > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, std::vector< array_1d< double, 3 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, std::vector< array_1d< double, 4 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, std::vector< array_1d< double, 6 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, std::vector< array_1d< double, 9 >> &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< Vector > &rVariable, std::vector< Vector > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< Matrix > &rVariable, std::vector< Matrix > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, std::vector< ConstitutiveLaw::Pointer > &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< bool > &rVariable, const std::vector< bool > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< int > &rVariable, const std::vector< int > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< double > &rVariable, const std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 3 >> &rVariable, const std::vector< array_1d< double, 3 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 4 >> &rVariable, const std::vector< array_1d< double, 4 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 6 >> &rVariable, const std::vector< array_1d< double, 6 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< array_1d< double, 9 >> &rVariable, const std::vector< array_1d< double, 9 >> &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< Vector > &rVariable, const std::vector< Vector > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< Matrix > &rVariable, const std::vector< Matrix > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | SetValuesOnIntegrationPoints (const Variable< ConstitutiveLaw::Pointer > &rVariable, const std::vector< ConstitutiveLaw::Pointer > &rValues, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | MassMatrix (MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | AddMassMatrix (MatrixType &rLeftHandSideMatrix, double coeff, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | DampMatrix (MatrixType &rDampMatrix, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | AddInertiaForces (VectorType &rRightHandSideVector, double coeff, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateLocalVelocityContribution (MatrixType &rDampingMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateSensitivityMatrix (const Variable< double > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | CalculateSensitivityMatrix (const Variable< array_1d< double, 3 > > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) |
|
PropertiesType::Pointer | pGetProperties () |
| returns the pointer to the property of the element. Does not throw an error, to allow copying of elements which don't have any property assigned. More...
|
|
const PropertiesType::Pointer | pGetProperties () const |
|
PropertiesType & | GetProperties () |
|
PropertiesType const & | GetProperties () const |
|
void | SetProperties (PropertiesType::Pointer pProperties) |
|
bool | HasProperties () const |
| Check that the Element has a correctly initialized pointer to a Properties instance. More...
|
|
| KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (Element) |
|
| GeometricalObject (IndexType NewId=0) |
| Default constructor. More...
|
|
| GeometricalObject (IndexType NewId, GeometryType::Pointer pGeometry) |
| Default constructor. More...
|
|
| ~GeometricalObject () override |
| Destructor. More...
|
|
| GeometricalObject (GeometricalObject const &rOther) |
| Copy constructor. More...
|
|
GeometricalObject & | operator= (GeometricalObject const &rOther) |
| Assignment operator. More...
|
|
virtual void | SetGeometry (GeometryType::Pointer pGeometry) |
| Sets the pointer to the geometry. More...
|
|
GeometryType::Pointer | pGetGeometry () |
| Returns the pointer to the geometry. More...
|
|
const GeometryType::Pointer | pGetGeometry () const |
| Returns the pointer to the geometry (const version) More...
|
|
GeometryType & | GetGeometry () |
| Returns the reference of the geometry. More...
|
|
GeometryType const & | GetGeometry () const |
| Returns the reference of the geometry (const version) More...
|
|
Flags & | GetFlags () |
| Returns the flags of the object. More...
|
|
Flags const & | GetFlags () const |
| Returns the flags of the object (const version) More...
|
|
void | SetFlags (Flags const &rThisFlags) |
| Sets the flags of the object. More...
|
|
DataValueContainer & | Data () |
|
DataValueContainer & | GetData () |
|
DataValueContainer const & | GetData () const |
|
void | SetData (DataValueContainer const &rThisData) |
|
template<class TDataType > |
bool | Has (const Variable< TDataType > &rThisVariable) const |
|
template<class TVariableType > |
void | SetValue (const TVariableType &rThisVariable, typename TVariableType::Type const &rValue) |
|
template<class TVariableType > |
TVariableType::Type & | GetValue (const TVariableType &rThisVariable) |
|
template<class TVariableType > |
TVariableType::Type const & | GetValue (const TVariableType &rThisVariable) const |
|
unsigned int | use_count () const noexcept |
|
| KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION (GeometricalObject) |
| Pointer definition of GeometricalObject. More...
|
|
bool | IsActive () const |
| Checks if the GeometricalObject is active. More...
|
|
| IndexedObject (IndexType NewId=0) |
| Default constructor. More...
|
|
virtual | ~IndexedObject () |
| Destructor. More...
|
|
| IndexedObject (IndexedObject const &rOther) |
| Copy constructor. More...
|
|
IndexedObject & | operator= (IndexedObject const &rOther) |
| Assignment operator. More...
|
|
template<class TObjectType > |
IndexType | operator() (TObjectType const &rThisObject) const |
|
IndexType | Id () const |
|
IndexType | GetId () const |
|
virtual void | SetId (IndexType NewId) |
|
IndexType & | DepricatedIdAccess () |
| TODO: remove this function when removing data_file_io object. More...
|
|
| KRATOS_CLASS_POINTER_DEFINITION (IndexedObject) |
| Pointer definition of IndexedObject. More...
|
|
Flags & | operator= (Flags const &rOther) |
| Assignment operator. More...
|
|
| operator bool () const |
|
Flags | operator~ () const |
|
bool | operator! () const |
|
void | AssignFlags (Flags const &rOther) |
|
void | Set (const Flags ThisFlag) |
|
void | Set (const Flags ThisFlag, bool Value) |
|
void | Reset (const Flags ThisFlag) |
|
void | Flip (const Flags ThisFlag) |
|
void | SetPosition (IndexType Position, bool Value=true) |
|
bool | GetPosition (IndexType Position) const |
|
void | FlipPosition (IndexType Position) |
|
void | ClearPosition (IndexType Position) |
|
void | Clear () |
|
Flags | AsFalse () const |
|
bool | Is (Flags const &rOther) const |
|
bool | IsDefined (Flags const &rOther) const |
|
bool | IsNot (Flags const &rOther) const |
|
bool | IsNotDefined (Flags const &rOther) const |
|
| KRATOS_CLASS_POINTER_DEFINITION (Flags) |
| Pointer definition of Flags. More...
|
|
const Flags & | operator|= (const Flags &Other) |
|
const Flags & | operator&= (const Flags &Other) |
|
| Flags () |
| Default constructor. More...
|
|
| Flags (Flags const &rOther) |
| Copy constructor. More...
|
|
virtual | ~Flags () |
| Destructor. More...
|
|
|
static bool | HasSameType (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
| Checks if two GeometricalObject have the same type. More...
|
|
static bool | HasSameType (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
| Checks if two GeometricalObject have the same type (pointer version) More...
|
|
static bool | HasSameGeometryType (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
| Checks if two GeometricalObject have the same geometry type. More...
|
|
static bool | HasSameGeometryType (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
| Checks if two GeometricalObject have the same geometry type (pointer version) More...
|
|
static bool | IsSame (const GeometricalObject &rLHS, const GeometricalObject &rRHS) |
| Checks if two GeometricalObject are the same. More...
|
|
static bool | IsSame (const GeometricalObject *rLHS, const GeometricalObject *rRHS) |
| Checks if two GeometricalObject are the same (pointer version) More...
|
|
static const Flags | AllDefined () |
|
static const Flags | AllTrue () |
|
static Flags | Create (IndexType ThisPosition, bool Value=true) |
|
virtual const Variable< double > & | GetUnknownComponent (int Index) const |
|
virtual LocalVectorType | GetUnknownVector (const ElementData &rData) const |
|
virtual void | InitializeData (ElementData &rData, const ProcessInfo &rCurrentProcessInfo) |
|
virtual void | GetNodalData (ElementData &rData, const GeometryType &rGeometry, int Step=0) |
|
virtual void | UpdateGaussPointData (ElementData &rData, const array_1d< double, TNumNodes > &rN) |
|
void | CalculateGeometryData (const GeometryType &rGeometry, Vector &rGaussWeights, Matrix &rNContainer, ShapeFunctionsGradientsType &rDN_DX) |
|
virtual void | CalculateArtificialViscosity (BoundedMatrix< double, 3, 3 > &rViscosity, BoundedMatrix< double, 2, 2 > &rDiffusion, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX) |
|
virtual void | CalculateArtificialDamping (BoundedMatrix< double, 3, 3 > &rDamping, const ElementData &rData) |
|
void | AddWaveTerms (LocalMatrixType &rMatrix, LocalVectorType &rVector, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX, const double Weight=1.0) |
|
void | AddFrictionTerms (LocalMatrixType &rMatrix, LocalVectorType &rVector, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX, const double Weight=1.0) |
|
void | AddArtificialViscosityTerms (LocalMatrixType &rMatrix, LocalVectorType &rVector, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX, const double Weight=1.0) |
|
virtual void | AddDispersiveTerms (LocalVectorType &rVector, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX, const double Weight=1.0) |
|
virtual void | AddMassTerms (LocalMatrixType &rMatrix, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX, const double Weight=1.0) |
|
virtual double | StabilizationParameter (const ElementData &rData) const |
|
static double | ShapeFunctionProduct (const array_1d< double, TNumNodes > &rN, const std::size_t I, const std::size_t J) |
|
static array_1d< double, 3 > | VectorProduct (const array_1d< array_1d< double, 3 >, TNumNodes > &rV, const array_1d< double, TNumNodes > &rN) |
|
static array_1d< double, 3 > | ScalarGradient (const array_1d< double, TNumNodes > &rS, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX) |
|
static double | VectorDivergence (const array_1d< array_1d< double, 3 >, TNumNodes > &rV, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX) |
|
static BoundedMatrix< double, 3, 3 > | VectorGradient (const array_1d< array_1d< double, 3 >, TNumNodes > &rV, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX) |
|
static double | InverseHeight (const ElementData &rData) |
|
static double | WetFraction (const ElementData &rData) |
|
static constexpr IndexType | mLocalSize = 3 * TNumNodes |
|