Abstract base class for defining design variables for shape optimisation. More...
#include <shapeDesignVariables.H>


Public Member Functions | |
| TypeName ("shape") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, shapeDesignVariables, dictionary,(fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
| shapeDesignVariables (fvMesh &mesh, const dictionary &dict) | |
| Construct from components. | |
| virtual | ~shapeDesignVariables ()=default |
| Destructor. | |
| virtual bool | readDict (const dictionary &dict) |
| Read dictionary if changed. | |
| virtual void | update (scalarField &correction)=0 |
| Update design variables based on a given correction. | |
| virtual void | storeDesignVariables () |
| Store design variables, as the starting point for line search. | |
| virtual void | resetDesignVariables () |
| Reset to starting point of line search. | |
| virtual scalar | computeEta (scalarField &correction)=0 |
| Compute eta if not set in the first step. | |
| virtual bool | globalSum () const =0 |
| Whether to use global sum when computing matrix-vector products in update methods. | |
| virtual void | moveMesh () |
| Move mesh based on displacementMethod. | |
| const labelHashSet & | getPatches () const |
| Patches affected by the parameterisation. | |
| autoPtr< displacementMethod > & | returnDisplacementMethod () |
| Return displacementMethod. | |
| virtual tmp< scalarField > | assembleSensitivities (adjointSensitivity &adjointSens) |
| Add part of sensitivity derivatives related to geometry variations. | |
| virtual void | writeSensitivities (const scalarField &sens, const adjointSensitivity &adjointSens) |
| Write final sensitivity derivatives to files. | |
| virtual tmp< vectorField > | dxdbVol (const label varID) const |
| Get dxdb for all mesh points. | |
| virtual tmp< vectorField > | dxdbFace (const label patchI, const label varID) const |
| Get dxdb for a given design variable and patch. | |
| virtual tmp< vectorField > | dndb (const label patchI, const label varID) const |
| Get dndb for a given design variable and patch. | |
| virtual tmp< vectorField > | dSdb (const label patchI, const label varID) const |
| Get dSdb for a given design variable and patch. | |
| virtual tmp< volVectorField > | dCdb (const label varID) const |
| Get dCdb for a given design variable. | |
| Public Member Functions inherited from designVariables | |
| TypeName ("designVariables") | |
| Runtime type information. | |
| declareRunTimeNewSelectionTable (autoPtr, designVariables, designVariables,(fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
| designVariables (fvMesh &mesh, const dictionary &dict) | |
| Construct from dictionary. | |
| designVariables (fvMesh &mesh, const dictionary &dict, const label size) | |
| Construct from dictionary and size. | |
| virtual | ~designVariables ()=default |
| Destructor. | |
| virtual const scalarField & | getVars () const |
| Get the design variables. | |
| virtual scalarField & | getVars () |
| Get the design variables. | |
| const labelList & | activeDesignVariables () const |
| Return list of active design variables. | |
| bool | isMaxInitChangeSet () const |
| Check whether the max. initial change of the design variables has been set. | |
| const autoPtr< scalar > & | getMaxInitChange () |
| Get maxInitChange. | |
| void | setMaxInitChange (const scalar maxInitChange) |
| Set maxInitChange. | |
| virtual bool | resetEta () const |
| Trigger the recomputation of eta by updateMethod. | |
| const autoPtr< scalarField > & | lowerBounds () const |
| Get min bounds for the design variables. | |
| const autoPtr< scalarField > & | upperBounds () const |
| Get max bounds for the design variables. | |
| scalarField & | lowerBoundsRef () |
| Get min bounds for the design variables. | |
| scalarField & | upperBoundsRef () |
| Get max bounds for the design variables. | |
| virtual void | postProcessSens (scalarField &objectiveSens, PtrList< scalarField > &constraintSens, const wordList &adjointSolversNames, bool isMaster) |
| Post process sensitivities if needed. | |
| virtual void | evolveNumber () |
| For design variables with a dynamic character (i.e. changing number), perform the evolution. | |
| virtual void | setInitialValues () |
| Set initial values of the design variables. | |
| virtual void | addFvOptions (const PtrList< primalSolver > &primalSolver, const PtrList< adjointSolverManager > &adjointSolverManagers) |
| Add fvOptions depending on the design variables. | |
| virtual tmp< scalarField > | constraintValues () |
| Design variables might add constraints related to themselves (e.g. linear combinations of the design variables) Return the values and gradients of these constraints. | |
| virtual PtrList< scalarField > | constraintDerivatives () |
| virtual void | writeDesignVars () |
| Write useful quantities to files. | |
| Public Member Functions inherited from Field< scalar > | |
| constexpr | Field () noexcept |
| Default construct. | |
| Field (const label len) | |
| Construct given size. | |
| Field (const label len, const scalar &val) | |
| Construct given size and initial value. | |
| Field (const label len, Foam::zero) | |
| Construct given size and initial values of zero. | |
| Field (Foam::one, const scalar &val) | |
| Construct with length=1, copying the value as the only content. | |
| Field (Foam::one, scalar &&val) | |
| Construct with length=1, moving the value as the only content. | |
| Field (Foam::one, Foam::zero) | |
| Construct with length=1, initializing content to zero. | |
| Field (const Field< scalar > &fld) | |
| Copy construct. | |
| Field (const UList< scalar > &list) | |
| Copy construct from UList<Type>. | |
| Field (const IndirectListBase< scalar, Addr > &list) | |
| Copy construct from IndirectList. | |
| Field (Field< scalar > &&fld) noexcept | |
| Move construct from Field. | |
| Field (List< scalar > &&list) noexcept | |
| Move construct from List. | |
| Field (DynamicList< scalar, SizeMin > &&list) | |
| Move construct from DynamicList. | |
| Field (const UList< scalar > &mapF, const labelUList &mapAddressing) | |
| Construct by 1 to 1 mapping from the given field. | |
| Field (const tmp< Field< scalar > > &tmapF, const labelUList &mapAddressing) | |
| Construct by 1 to 1 mapping from the given tmp field. | |
| Field (const UList< scalar > &mapF, const labelListList &mapAddressing, const scalarListList &weights) | |
| Construct by interpolative mapping from the given field. | |
| Field (const tmp< Field< scalar > > &tmapF, const labelListList &mapAddressing, const scalarListList &weights) | |
| Construct by interpolative mapping from the given tmp field. | |
| Field (const UList< scalar > &mapF, const FieldMapper &map, const bool applyFlip=true) | |
| Construct by mapping from the given field. | |
| Field (const UList< scalar > &mapF, const FieldMapper &map, const scalar &defaultValue, const bool applyFlip=true) | |
| Construct by mapping from the given field. | |
| Field (const UList< scalar > &mapF, const FieldMapper &map, const UList< scalar > &defaultValues, const bool applyFlip=true) | |
| Construct by mapping from the given field. | |
| Field (const tmp< Field< scalar > > &tmapF, const FieldMapper &map, const bool applyFlip=true) | |
| Construct by mapping from the given tmp field. | |
| Field (const tmp< Field< scalar > > &tmapF, const FieldMapper &map, const scalar &defaultValue, const bool applyFlip=true) | |
| Construct by mapping from the given tmp field. Uses supplied uniform value for unmapped items. | |
| Field (const tmp< Field< scalar > > &tmapF, const FieldMapper &map, const UList< scalar > &defaultValues, const bool applyFlip=true) | |
| Construct by mapping from the given tmp field. Uses supplied values for unmapped items. | |
| Field (Field< scalar > &fld, bool reuse) | |
| Copy construct or re-use as specified. | |
| Field (const tmp< Field< scalar > > &tfld) | |
| Copy or move construct from tmp. | |
| Field (Istream &is) | |
| Construct from Istream. | |
| Field (const entry &e, const label len) | |
| Construct from a dictionary (primitive) entry. | |
| Field (const word &key, const dictionary &dict, const label len, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) | |
| Lookup of a primitive dictionary entry by (literal) name and assign its contents to this. The behaviour largely as described in assign(): | |
| tmp< Field< scalar > > | clone () const |
| Clone. | |
| void | assign (const entry &e, const label len) |
| Assign from a primitive dictionary entry with the following behaviour: | |
| bool | assign (const word &key, const dictionary &dict, const label len, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) |
| Lookup a primitive dictionary entry by (literal) name and assign its contents to this (behaviour as described above). | |
| void | map (const UList< scalar > &mapF, const labelUList &mapAddressing) |
| 1 to 1 map from the given field | |
| void | map (const tmp< Field< scalar > > &tmapF, const labelUList &mapAddressing) |
| 1 to 1 map from the given tmp field | |
| void | map (const UList< scalar > &mapF, const labelListList &mapAddressing, const scalarListList &weights) |
| Interpolative map from the given field. | |
| void | map (const tmp< Field< scalar > > &tmapF, const labelListList &mapAddressing, const scalarListList &weights) |
| Interpolative map from the given tmp field. | |
| void | map (const UList< scalar > &mapF, const FieldMapper &map, const bool applyFlip=true) |
| Map from the given field. | |
| void | map (const tmp< Field< scalar > > &tmapF, const FieldMapper &map, const bool applyFlip=true) |
| Map from the given tmp field. | |
| void | autoMap (const FieldMapper &map, const bool applyFlip=true) |
| Map from self. | |
| void | rmap (const UList< scalar > &mapF, const labelUList &mapAddressing) |
| 1 to 1 reverse-map from the given field | |
| void | rmap (const tmp< Field< scalar > > &tmapF, const labelUList &mapAddressing) |
| 1 to 1 reverse-map from the given tmp field | |
| void | rmap (const UList< scalar > &mapF, const labelUList &mapAddressing, const UList< scalar > &weights) |
| Interpolative reverse map from the given field. | |
| void | rmap (const tmp< Field< scalar > > &tmapF, const labelUList &mapAddressing, const UList< scalar > &weights) |
| Interpolative reverse map from the given tmp field. | |
| void | negate () |
| Inplace negate this field (negative). | |
| void | normalise () |
| Inplace normalise this field. Generally a no-op except for vector fields. | |
| tmp< Field< cmptType > > | component (const direction) const |
| Return a component field of the field. | |
| void | replace (const direction, const UList< cmptType > &) |
| Replace a component field of the field. | |
| void | replace (const direction, const tmp< Field< cmptType > > &) |
| Replace a component field of the field. | |
| void | replace (const direction, const cmptType &) |
| Replace a component field of the field. | |
| void | clamp_min (const scalar &lower) |
| Impose lower (floor) clamp on the field values (in-place). | |
| void | clamp_min (const UList< scalar > &lower) |
| Impose lower (floor) clamp on the field values (in-place). | |
| void | clamp_max (const scalar &upper) |
| Impose upper (ceiling) clamp on the field values (in-place). | |
| void | clamp_max (const UList< scalar > &upper) |
| Impose upper (ceiling) clamp on the field values (in-place). | |
| void | clamp_range (const scalar &lower, const scalar &upper) |
| Clamp field values (in-place) to the specified range. | |
| void | clamp_range (const MinMax< scalar > &range) |
| Clamp field values (in-place) to the specified range. | |
| VSForm | block (const label start) const |
| tmp< Field< scalar > > | T () const |
| Return the field transpose (only defined for second rank tensors). | |
| void | writeEntry (const word &keyword, Ostream &os) const |
| Write the field as a dictionary entry. | |
| SubField< scalar > | slice (const label pos, label len=-1) |
| Return SubField slice (non-const access) - no range checking. | |
| const SubField< scalar > | slice (const label pos, label len=-1) const |
| Return SubField slice (const access) - no range checking. | |
| SubField< scalar > | slice (const labelRange &range) |
| Return SubField slice (non-const access) - with range checking. | |
| const SubField< scalar > | slice (const labelRange &range) const |
| Return SubField slice (const access) - with range checking. | |
| void | operator= (const Field< scalar > &) |
| Copy assignment. | |
| void | operator= (const tmp< Field< scalar > > &) |
| void | operator= (const UList< scalar > &rhs) |
| void | operator= (const SubField< scalar > &rhs) |
| void | operator= (const IndirectListBase< scalar, Addr > &rhs) |
| Copy assign from IndirectList. | |
| void | operator= (Field< scalar > &&rhs) |
| Move assignment. | |
| void | operator= (List< scalar > &&rhs) |
| void | operator= (DynamicList< scalar, SizeMin > &&rhs) |
| void | operator= (const scalar &val) |
| Assign entries to the given value. | |
| void | operator= (Foam::zero) |
| Assign entries to zero. | |
| void | operator= (const VectorSpace< Form, Cmpt, nCmpt > &) |
| void | operator+= (const UList< scalar > &) |
| void | operator+= (const tmp< Field< scalar > > &) |
| void | operator-= (const UList< scalar > &) |
| void | operator-= (const tmp< Field< scalar > > &) |
| void | operator*= (const UList< scalar > &) |
| void | operator*= (const tmp< Field< scalar > > &) |
| void | operator/= (const UList< scalar > &) |
| void | operator/= (const tmp< Field< scalar > > &) |
| void | operator+= (const scalar &) |
| void | operator-= (const scalar &) |
| void | operator*= (const scalar &) |
| void | operator/= (const scalar &) |
| Field (const Expression::ListExpression< E > &expr) | |
| Construct from value expression. | |
| void | operator= (const Expression::ListExpression< E > &expr) |
| Assign values from expression. | |
| void | operator= (const tmp< Field > &rhs) |
| void | normalise () |
| void | normalise () |
| void | normalise () |
| Inplace normalise (float) vector field. | |
| void | normalise () |
| Inplace normalise (double) vector field. | |
| Public Member Functions inherited from FieldBase | |
| constexpr | FieldBase () noexcept |
| Default construct. | |
| Public Member Functions inherited from refCount | |
| constexpr | refCount () noexcept |
| Default construct, initializing count to 0. | |
| int | use_count () const noexcept |
| Return the current reference count. | |
| bool | unique () const noexcept |
| Return true if the reference count is zero. | |
| void | operator++ () noexcept |
| Increment the reference count. | |
| void | operator++ (int) noexcept |
| Increment the reference count. | |
| void | operator-- () noexcept |
| Decrement the reference count. | |
| void | operator-- (int) noexcept |
| Decrement the reference count. | |
| Public Member Functions inherited from List< scalar > | |
| constexpr | List () noexcept |
| Default construct. | |
| List (const label len) | |
| Construct with given size. | |
| List (const label len, const scalar &val) | |
| Construct with given size and value for all elements. | |
| List (const label len, Foam::zero) | |
| Construct with given size initializing all elements to zero. | |
| List (Foam::one, const scalar &val) | |
| Construct with length=1, copying the value as the only content. | |
| List (Foam::one, scalar &&val) | |
| Construct with length=1, moving the value as the only content. | |
| List (Foam::one, Foam::zero) | |
| Construct with length=1, initializing content to zero. | |
| List (const List< scalar > &list) | |
| Copy construct from list. | |
| List (const UList< scalar > &list) | |
| Copy construct contents from list. | |
| List (List< scalar > &list, bool reuse) | |
| Construct as copy or re-use as specified. | |
| List (const UList< scalar > &list, const labelUList &indices) | |
| Copy construct subset of list. | |
| List (const UList< scalar > &list, const FixedList< label, N > &indices) | |
| Copy construct subset of list. | |
| List (const FixedList< scalar, N > &list) | |
| Construct as copy of FixedList<T, N>. | |
| List (const UPtrList< scalar > &list) | |
| Construct as copy of UPtrList<T> content. | |
| List (const IndirectListBase< scalar, Addr > &list) | |
| Construct as copy of IndirectList contents. | |
| List (std::initializer_list< scalar > list) | |
| Construct from an initializer list. | |
| List (List< scalar > &&list) noexcept | |
| Move construct from List. | |
| List (DynamicList< scalar, SizeMin > &&list) | |
| Move construct from DynamicList. | |
| List (Istream &is) | |
| Construct from Istream. | |
| autoPtr< List< scalar > > | clone () const |
| Clone. | |
| ~List () | |
| Destructor. | |
| void | clear () |
| Clear the list, i.e. set size to zero. | |
| void | resize (const label len) |
| Adjust allocated size of list. | |
| void | resize (const label len, const scalar &val) |
| Adjust allocated size of list and set val for new elements. | |
| void | resize_copy (label count, const label len) |
| Change allocated size of list, retaining the first count elements. | |
| void | resize_fill (const label len, const scalar &val) |
| Adjust allocated size of list and set val for all elements. | |
| void | resize_nocopy (const label len) |
| Adjust allocated size of list without necessarily. | |
| void | transfer (List< scalar > &list) |
| Transfer the contents of the argument List into this list and annul the argument list. | |
| void | transfer (DynamicList< scalar, SizeMin > &list) |
| Transfer the contents of the argument List into this list and annul the argument list. | |
| scalar & | newElmt (const label i) |
| Return subscript-checked element of UList and resizing the list if required. | |
| scalar & | emplace_back (Args &&... args) |
| Construct an element at the end of the list, return reference to the new list element. | |
| void | push_back (const scalar &val) |
| Append an element at the end of the list. | |
| void | push_back (scalar &&val) |
| Move append an element at the end of the list. | |
| void | push_back (const UList< scalar > &list) |
| Append a List to the end of this list. | |
| void | push_back (const IndirectListBase< scalar, Addr > &list) |
| Append IndirectList contents at the end of this list. | |
| label | push_uniq (const scalar &val) |
| Append an element if not already in the list. | |
| void | pop_back (label n=1) |
| Reduce size by 1 or more elements. Can be called on an empty list. | |
| void | operator= (const UList< scalar > &list) |
| Assignment to UList operator. Takes linear time. | |
| void | operator= (const List< scalar > &list) |
| Assignment operator. Takes linear time. | |
| void | operator= (const IndirectListBase< scalar, Addr > &list) |
| Assignment from IndirectList. Takes linear time. | |
| void | operator= (const FixedList< scalar, N > &list) |
| Copy assignment from FixedList. | |
| void | operator= (std::initializer_list< scalar > list) |
| Assignment to an initializer list. | |
| void | operator= (const scalar &val) |
| Assignment of all entries to the given value. | |
| void | operator= (Foam::zero) |
| Assignment of all entries to zero. | |
| void | operator= (List< scalar > &&list) |
| Move assignment. Takes constant time. | |
| void | operator= (DynamicList< scalar, SizeMin > &&list) |
| Move assignment. Takes constant time. | |
| Istream & | readList (Istream &is) |
| Read List from Istream, discarding contents of existing List. | |
| void | shallowCopy (const UList< scalar > &)=delete |
| No shallowCopy permitted. | |
| bool | set (const label i, bool val=true) |
| A bitSet::set() method for a list of bool. | |
| void | append (const scalar &val) |
| Append an element at the end of the list. | |
| void | append (scalar &&val) |
| Move append an element at the end of the list. | |
| void | append (const UList< scalar > &list) |
| Append a List to the end of this list. | |
| void | append (const IndirectListBase< scalar, Addr > &list) |
| Append IndirectList contents at the end of this list. | |
| label | appendUniq (const scalar &val) |
| Same as push_uniq(). | |
| void | setSize (label n) |
| Alias for resize(). | |
| void | setSize (label n, const scalar &val) |
| Alias for resize(). | |
| List (const Expression::ListExpression< E > &expr) | |
| Construct from value expression. | |
| void | operator= (const Expression::ListExpression< E > &expr) |
| Assign values from expression. | |
| void | resize (const label len) |
| Public Member Functions inherited from UList< scalar > | |
| UList (const UList< scalar > &) noexcept=default | |
| Copy construct, shallow copy. | |
| UList (UList< scalar > &&) noexcept=default | |
| Move construct, shallow copy. | |
| UList< scalar > & | operator= (const UList< scalar > &)=delete |
| No copy assignment (default: shallow copy). | |
| UList< scalar > & | operator= (UList< scalar > &&) noexcept=default |
| Move assignment, shallow copy. | |
| constexpr | UList () noexcept |
| Default construct, zero-sized and nullptr. | |
| UList (scalar *__restrict__ ptr, const label len) noexcept | |
| Construct from components. | |
| UList (SubList< scalar > &&) noexcept | |
| Move construct from a SubList, shallow copy. | |
| label | fcIndex (const label i) const noexcept |
| The forward circular index. The next index in the list which returns to the first at the end of the list. | |
| label | rcIndex (const label i) const noexcept |
| The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. | |
| const scalar & | fcValue (const label i) const |
| Return forward circular value (ie, next value in the list). | |
| scalar & | fcValue (const label i) |
| Return forward circular value (ie, next value in the list). | |
| const scalar & | rcValue (const label i) const |
| Return reverse circular value (ie, previous value in the list). | |
| scalar & | rcValue (const label i) |
| Return reverse circular value (ie, previous value in the list). | |
| const scalar * | cdata () const noexcept |
| Return pointer to the underlying array serving as data storage. | |
| scalar * | data () noexcept |
| Return pointer to the underlying array serving as data storage. | |
| const char * | cdata_bytes () const noexcept |
| Return pointer to the underlying array serving as data storage,. | |
| char * | data_bytes () noexcept |
| Return pointer to the underlying array serving as data storage,. | |
| scalar & | front () |
| Access first element of the list, position [0]. | |
| const scalar & | front () const |
| Access first element of the list. | |
| scalar & | back () |
| Access last element of the list, position [size()-1]. | |
| const scalar & | back () const |
| Access last element of the list, position [size()-1]. | |
| std::streamsize | size_bytes () const noexcept |
| Number of contiguous bytes for the List data. | |
| std::streamsize | byteSize () const |
| Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. | |
| void | checkStart (const label start) const |
| Check start is within valid range [0,size). | |
| void | checkSize (const label size) const |
| Check size is within valid range [0,size]. | |
| void | checkRange (const label start, const label len) const |
| Check that start and length define a valid range. | |
| void | checkIndex (const label i) const |
| Check index is within valid range [0,size). | |
| bool | uniform () const |
| True if all entries have identical values, and list is non-empty. | |
| bool | contains (const scalar &val) const |
| True if the value is contained in the list. | |
| bool | contains (const scalar &val, label pos, label len=-1) const |
| Is the value contained in the list? | |
| label | find (const scalar &val) const |
| Find index of the first occurrence of the value. | |
| label | find (const scalar &val, label pos, label len=-1) const |
| Find index of the first occurrence of the value. | |
| label | rfind (const scalar &val, label pos=-1) const |
| Find index of the last occurrence of the value. | |
| void | moveFirst (const label i) |
| Move element to the first position. | |
| void | moveLast (const label i) |
| Move element to the last position. | |
| void | swapFirst (const label i) |
| Swap element with the first element. Fatal on an empty list. | |
| void | swapLast (const label i) |
| Swap element with the last element. Fatal on an empty list. | |
| void | shallowCopy (scalar *__restrict__ ptr, const label len) noexcept |
| Copy the pointer and size. | |
| void | shallowCopy (std::nullptr_t) noexcept |
| Copy nullptr and zero size. | |
| void | shallowCopy (const UList< scalar > &list) noexcept |
| Copy the pointer and size held by the given UList. | |
| void | deepCopy (const UList< scalar > &list) |
| Copy elements of the given UList. Sizes must match! | |
| void | deepCopy (const IndirectListBase< scalar, Addr > &list) |
| Copy elements of the given indirect list. Sizes must match! | |
| SubList< scalar > | slice (const label pos, label len=-1) |
| Return SubList slice (non-const access) - no range checking. | |
| const SubList< scalar > | slice (const label pos, label len=-1) const |
| Return SubList slice (const access) - no range checking. | |
| SubList< scalar > | slice (const labelRange &range) |
| Return SubList slice (non-const access) - with range checking. | |
| const SubList< scalar > | slice (const labelRange &range) const |
| Return SubList slice (const access) - with range checking. | |
| scalar & | operator[] (const label i) |
| Return element of UList. | |
| const scalar & | operator[] (const label i) const |
| Return element of constant UList. | |
| operator const Foam::List< scalar > & () const | |
| Allow cast to a const List<T>&. | |
| void | operator= (const scalar &val) |
| Assignment of all entries to the given value. | |
| void | operator= (Foam::zero) |
| Assignment of all entries to zero. | |
| iterator | begin () noexcept |
| Return an iterator to begin traversing the UList. | |
| iterator | end () noexcept |
| Return an iterator to end traversing the UList. | |
| iterator | begin (const label i) noexcept |
| Return iterator at offset i from begin, clamped to [0,size] range. | |
| const_iterator | cbegin () const noexcept |
| Return const_iterator to begin traversing the constant UList. | |
| const_iterator | cend () const noexcept |
| Return const_iterator to end traversing the constant UList. | |
| const_iterator | begin () const noexcept |
| Return const_iterator to begin traversing the constant UList. | |
| const_iterator | end () const noexcept |
| Return const_iterator to end traversing the constant UList. | |
| const_iterator | cbegin (const label i) const noexcept |
| Return const_iterator at offset i from begin, clamped to [0,size] range. | |
| const_iterator | begin (const label i) const noexcept |
| Return const_iterator at offset i from begin, clamped to [0,size] range. | |
| reverse_iterator | rbegin () |
| Return reverse_iterator to begin reverse traversing the UList. | |
| reverse_iterator | rend () |
| Return reverse_iterator to end reverse traversing the UList. | |
| const_reverse_iterator | crbegin () const |
| Return const_reverse_iterator to begin reverse traversing the UList. | |
| const_reverse_iterator | crend () const |
| Return const_reverse_iterator to end reverse traversing the UList. | |
| const_reverse_iterator | rbegin () const |
| Return const_reverse_iterator to begin reverse traversing the UList. | |
| const_reverse_iterator | rend () const |
| Return const_reverse_iterator to end reverse traversing the UList. | |
| bool | empty () const noexcept |
| True if List is empty (ie, size() is zero). | |
| label | size () const noexcept |
| The number of elements in the container. | |
| label | capacity () const noexcept |
| Size of the underlying storage. | |
| void | swap (UList< scalar > &list) noexcept |
| Swap content with another UList of the same type in constant time. | |
| bool | operator== (const UList< scalar > &list) const |
| Equality operation on ULists of the same type. | |
| bool | operator!= (const UList< scalar > &list) const |
| The opposite of the equality operation. Takes linear time. | |
| bool | operator< (const UList< scalar > &list) const |
| Compare two ULists lexicographically. Takes linear time. | |
| bool | operator> (const UList< scalar > &list) const |
| Compare two ULists lexicographically. Takes linear time. | |
| bool | operator<= (const UList< scalar > &list) const |
| Return true if !(a > b). Takes linear time. | |
| bool | operator>= (const UList< scalar > &list) const |
| Return true if !(a < b). Takes linear time. | |
| Istream & | readList (Istream &is) |
| Read List contents from Istream. | |
| void | writeEntry (const word &keyword, Ostream &os) const |
| Write the List as a dictionary entry with keyword. | |
| Ostream & | writeList (Ostream &os, const label shortLen=0) const |
| Write List, with line-breaks in ASCII when length exceeds shortLen. | |
| bool | all () const |
| True if all entries are 'true' or if the list is empty. | |
| bool | any () const |
| True if any entries are 'true'. | |
| bool | none () const |
| True if no entries are 'true'. | |
| bool | test (const label i) const |
Test bool value at specified position, always false for out-of-range access. | |
| bool | get (const label i) const |
Return bool value at specified position, always false for out-of-range access. | |
| bool | unset (const label i) |
Unset the bool entry at specified position, always false for out-of-range access. | |
| std::string_view | view () const |
| Return a string_view of the charList. Content is non-modifiable. | |
| scalar & | first () |
| Access first element of the list, position [0]. | |
| const scalar & | first () const |
| Access first element of the list. | |
| scalar & | last () |
| Access last element of the list, position [size()-1]. | |
| const scalar & | last () const |
| Access last element of the list, position [size()-1]. | |
| bool | found (const scalar &val, label pos=0) const |
| Same as contains(). | |
| auto | expr () const |
| Wrap value as expression. | |
| void | operator= (const Expression::ListExpression< E > &expr) |
| Assign values from expression. | |
| operator const Foam::List< scalar > & () const | |
| Allow cast to a const List<T>&. | |
Static Public Member Functions | |
| static autoPtr< shapeDesignVariables > | New (fvMesh &mesh, const dictionary &dict) |
| Construct and return the selected shapeDesignVariables. | |
| Static Public Member Functions inherited from designVariables | |
| static autoPtr< designVariables > | New (fvMesh &mesh, const dictionary &dict) |
| Return a reference to the selected design variables. | |
| Static Public Member Functions inherited from Field< scalar > | |
| static const Field< scalar > & | null () noexcept |
| Return a null Field (reference to a nullObject). Behaves like an empty Field. | |
| static autoPtr< Field< scalar > > | New (Istream &is) |
| Return a pointer to a new Field created on freestore. | |
| static tmp< Field< scalar > > | NewCalculatedType (const Field< Type2 > &f) |
| Return a pointer to a new calculatedFvPatchFieldField created on freestore without setting patchField values. | |
| Static Public Member Functions inherited from FieldBase | |
| static void | warnLocalBoundaryConsistencyCompat (const dictionary &) |
| Warn about keyword changes for local boundary consistency checks. | |
| static int | localBoundaryConsistency () noexcept |
| Get flag for local boundary consistency checks. | |
| static int | localBoundaryConsistency (int val) noexcept |
| Set flag for local boundary consistency checks. | |
| Static Public Member Functions inherited from List< scalar > | |
| static const List< scalar > & | null () noexcept |
| Return a null List (reference to a nullObject). Behaves like an empty List. | |
| Static Public Member Functions inherited from UList< scalar > | |
| static const UList< scalar > & | null () noexcept |
| Return a null UList (reference to a nullObject). Behaves like an empty UList. | |
| static constexpr label | max_size () noexcept |
| The size of the largest possible UList. | |
Protected Member Functions | |
| virtual label | sensSize () const |
| Size of the sensitivity derivatives. | |
| virtual const labelList & | activeSensitivities () const |
| Active variables for which to compute sensitivities. | |
| virtual tmp< volVectorField > | solveMeshMovementEqn (const label patchI, const label varID) const |
| Compute dxdb at the mesh cell centers by solving a Laplace PDE. | |
| void | allocateSensFields () |
| Allocate the fields assosiated with the computation of sensitivities. | |
| void | zeroSensFields () |
| Zero the fields assosiated with the computation of sensitivities. | |
| Protected Member Functions inherited from designVariables | |
| void | readBounds (autoPtr< scalar > lowerBoundPtr=nullptr, autoPtr< scalar > upperBoundPtr=nullptr) |
| Read bounds for design variables, if present. | |
| Protected Member Functions inherited from UList< scalar > | |
| void | setAddressableSize (const label n) noexcept |
| Set addressed size to be inconsistent with allocated storage. | |
| void | size (const label n) |
| Older name for setAddressableSize. | |
| void | writeEntry (Ostream &os) const |
| Write the UList with its compound type. | |
| labelRange | validateRange (const labelRange &requestedRange) const |
| Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. | |
| void | fill_uniform (const scalar &val) |
| Assign all entries to the given value. | |
| void | fill_uniform (Foam::zero) |
| Assign all entries to zero. | |
Protected Attributes | |
| labelHashSet | parametertisedPatches_ |
| Patches to be moved by the design variables. | |
| autoPtr< displacementMethod > | displMethodPtr_ |
| Mesh movement mechanism. | |
| autoPtr< pointField > | pointsInit_ |
| Store old points. Useful for line search. | |
| bool | writeEachMesh_ |
| Write the mesh points irrespective of whether this is a write time. | |
| scalarField | dxdbVolSens_ |
| Flow related term. | |
| scalarField | dxdbSurfSens_ |
| Flow related term. | |
| scalarField | dSdbSens_ |
| Term depending on delta(n dS)/delta b. | |
| scalarField | dndbSens_ |
| Term depending on delta(n)/delta b. | |
| scalarField | dxdbDirectSens_ |
| Term depending on delta(x)/delta b for objectives that directly depend on x. | |
| scalarField | dVdbSens_ |
| Term depending on delta(V)/delta b. | |
| scalarField | distanceSens_ |
| Term depending on distance differentiation. | |
| scalarField | optionsSens_ |
| Term depending on fvOptions. | |
| scalarField | bcSens_ |
| Term depending on the differenation of boundary conditions. | |
| fileName | derivativesFolder_ |
| Name of the sensitivity derivatives folder. | |
| Protected Attributes inherited from designVariables | |
| fvMesh & | mesh_ |
| dictionary | dict_ |
| labelList | activeDesignVariables_ |
| Which of the design variables will be updated. | |
| autoPtr< scalarField > | oldDesignVariables_ |
| Copy of old design variables. Useful when performing line-search. | |
| autoPtr< scalar > | maxInitChange_ |
| Maximum design variables' change in the first optimisation cycle. | |
| autoPtr< scalarField > | lowerBounds_ |
| Lower bounds of the design variables. | |
| autoPtr< scalarField > | upperBounds_ |
| Upper bounds of the design variables. | |
Additional Inherited Members | |
| Public Types inherited from Field< scalar > | |
| typedef pTraits< scalar >::cmptType | cmptType |
| Component type. | |
| typedef SubField< scalar > | subField |
| Declare type of subField. | |
| Public Types inherited from List< scalar > | |
| typedef SubList< scalar > | subList |
| Declare type of subList. | |
| Public Types inherited from UList< scalar > | |
| typedef scalar | value_type |
| The value type the list contains. | |
| typedef scalar * | pointer |
| The pointer type for non-const access to value_type items. | |
| typedef const scalar * | const_pointer |
| The pointer type for const access to value_type items. | |
| typedef scalar & | reference |
| The type used for storing into value_type objects. | |
| typedef const scalar & | const_reference |
| The type used for reading from constant value_type objects. | |
| typedef scalar * | iterator |
| Random access iterator for traversing a UList. | |
| typedef const scalar * | const_iterator |
| Random access iterator for traversing a UList. | |
| typedef label | size_type |
| The type to represent the size of a UList. | |
| typedef label | difference_type |
| The difference between iterator objects. | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| Reverse iterator (non-const access). | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| Reverse iterator (const access). | |
| using | is_List |
| Have unique tag. | |
| Static Public Attributes inherited from FieldBase | |
| static const char *const | typeName |
| Typename for Field. | |
| static bool | allowConstructFromLargerSize = false |
| Permit read construct from a larger size. | |
| static bool | unifiedGeometricField |
| GeometricField with extra capacity for flattened boundary fields. Uses opt-switch "unifiedGeometricField". | |
| static int | localBoundaryConsistency_ |
| Local boundary field consistency checks. Uses opt-switch "localBoundaryConsistency". | |
| static scalar | localBoundaryTolerance_ |
| Tolerance for local boundary field consistency checks. Uses opt-switch "localBoundaryConsistency::tolerance". | |
Abstract base class for defining design variables for shape optimisation.
Definition at line 49 of file shapeDesignVariables.H.
| shapeDesignVariables | ( | fvMesh & | mesh, |
| const dictionary & | dict ) |
Construct from components.
Definition at line 152 of file shapeDesignVariables.C.
References bcSens_, derivativesFolder_, dict, displMethodPtr_, distanceSens_, dndbSens_, dSdbSens_, dVdbSens_, dxdbDirectSens_, dxdbSurfSens_, dxdbVolSens_, UList< scalar >::get(), mesh, designVariables::mesh_, Foam::mkDir(), Foam::name(), New(), optionsSens_, parametertisedPatches_, pointsInit_, and writeEachMesh_.

|
virtualdefault |
Destructor.
References dict.
|
protectedvirtual |
Size of the sensitivity derivatives.
Might be different than this->size() in some cases
Reimplemented in volumetricBSplinesDesignVariables.
Definition at line 47 of file shapeDesignVariables.C.
References UList< scalar >::size().
Referenced by allocateSensFields(), and assembleSensitivities().


|
protectedvirtual |
Active variables for which to compute sensitivities.
Might be different than this->activeDesignVariables_ in some cases
Reimplemented in volumetricBSplinesDesignVariables.
Definition at line 53 of file shapeDesignVariables.C.
References designVariables::activeDesignVariables_.
Referenced by assembleSensitivities(), and writeSensitivities().

|
protectedvirtual |
Compute dxdb at the mesh cell centers by solving a Laplace PDE.
Definition at line 60 of file shapeDesignVariables.C.
References variablesSet::autoCreateMeshMovementField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), DebugInfo, designVariables::dict_, Foam::dimLength, dxdbFace(), Foam::endl(), dictionary::getOrDefault(), Foam::gMax(), Foam::Info, SolverPerformance< Type >::initialResidual(), iters(), Foam::fvm::laplacian(), Foam::mag(), designVariables::mesh_, tmp< T >::New(), and fvMatrix< Type >::solve().
Referenced by BezierDesignVariables::dCdb().


|
protected |
Allocate the fields assosiated with the computation of sensitivities.
Not allocated in the constructor since the size of the design variables is usually not known there
Definition at line 119 of file shapeDesignVariables.C.
References bcSens_, distanceSens_, dndbSens_, dSdbSens_, dVdbSens_, dxdbDirectSens_, dxdbSurfSens_, dxdbVolSens_, optionsSens_, sensSize(), and Foam::Zero.
Referenced by assembleSensitivities().


|
protected |
Zero the fields assosiated with the computation of sensitivities.
Definition at line 136 of file shapeDesignVariables.C.
References bcSens_, distanceSens_, dndbSens_, dSdbSens_, dVdbSens_, dxdbDirectSens_, dxdbSurfSens_, dxdbVolSens_, optionsSens_, and Foam::Zero.
Referenced by assembleSensitivities().

| TypeName | ( | "shape" | ) |
Runtime type information.
| declareRunTimeSelectionTable | ( | autoPtr | , |
| shapeDesignVariables | , | ||
| dictionary | , | ||
| (fvMesh &mesh, const dictionary &dict) | , | ||
| (mesh, dict) | ) |
|
static |
Construct and return the selected shapeDesignVariables.
Definition at line 197 of file shapeDesignVariables.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInLookup, Foam::Info, and mesh.
Referenced by BezierDesignVariables::BezierDesignVariables(), shapeDesignVariables(), and volumetricBSplinesDesignVariables::volumetricBSplinesDesignVariables().


|
virtual |
Read dictionary if changed.
Reimplemented from designVariables.
Definition at line 225 of file shapeDesignVariables.C.
References dict, displMethodPtr_, designVariables::mesh_, parametertisedPatches_, designVariables::readDict(), and writeEachMesh_.

|
pure virtual |
Update design variables based on a given correction.
Translates the scalarField of corrections to a meaningful update of the design variables
Implements designVariables.
Implemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
References Foam::correction().

|
virtual |
Store design variables, as the starting point for line search.
Reimplemented from designVariables.
Definition at line 243 of file shapeDesignVariables.C.
References designVariables::mesh_, pointsInit_, designVariables::storeDesignVariables(), and Foam::Zero.

|
virtual |
Reset to starting point of line search.
Reimplemented from designVariables.
Reimplemented in volumetricBSplinesDesignVariables.
Definition at line 255 of file shapeDesignVariables.C.
References designVariables::mesh_, pointsInit_, and designVariables::resetDesignVariables().
Referenced by volumetricBSplinesDesignVariables::resetDesignVariables().


|
pure virtual |
Compute eta if not set in the first step.
Implements designVariables.
Implemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
References Foam::correction().

|
pure virtual |
Whether to use global sum when computing matrix-vector products in update methods.
Depends on whether the design variables are common for all processors (e.g. volumetric B-Splines control points) or distributed across them (e.g. topology optimisation)
Implements designVariables.
Implemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
|
virtual |
Move mesh based on displacementMethod.
Definition at line 262 of file shapeDesignVariables.C.
References displMethodPtr_, Foam::endl(), Foam::Info, designVariables::mesh_, polyMesh::meshSubDir, IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, points, and writeEachMesh_.
Referenced by BezierDesignVariables::update(), and volumetricBSplinesDesignVariables::update().


|
inline |
Patches affected by the parameterisation.
Definition at line 295 of file shapeDesignVariables.H.
References parametertisedPatches_.
|
inline |
Return displacementMethod.
Definition at line 303 of file shapeDesignVariables.H.
References displMethodPtr_.
|
virtual |
Add part of sensitivity derivatives related to geometry variations.
Implements designVariables.
Reimplemented in volumetricBSplinesDesignVariables.
Definition at line 293 of file shapeDesignVariables.C.
References activeSensitivities(), allocateSensFields(), adjointSensitivity::bcDxDbMult(), bcSens_, adjointSensitivity::computeDxDbInternalField(), dCdb(), distanceSens_, Foam::fvc::div(), adjointSensitivity::divDxDbMult(), dndb(), dndbSens_, adjointSensitivity::dnfdbMult(), dSdb(), dSdbSens_, adjointSensitivity::dSfdbMult(), dVdbSens_, adjointSensitivity::dxdbDirectMult(), dxdbDirectSens_, dxdbFace(), adjointSensitivity::dxdbMult(), dxdbSurfSens_, dxdbVolSens_, adjointSensitivity::getAdjointEikonalSolver(), Foam::fvc::grad(), adjointSensitivity::gradDxDbMult(), Foam::gSum(), adjointSensitivity::includeDistance(), designVariables::mesh_, tmp< T >::New(), adjointSensitivity::optionsDxDbMult(), optionsSens_, parametertisedPatches_, GeometricField< Type, PatchField, GeoMesh >::primitiveField(), tmp< T >::ref(), autoPtr< T >::reset(), sensSize(), writeSensitivities(), Foam::Zero, and zeroSensFields().
Referenced by volumetricBSplinesDesignVariables::assembleSensitivities().


|
virtual |
Write final sensitivity derivatives to files.
Definition at line 406 of file shapeDesignVariables.C.
References activeSensitivities(), bcSens_, IOstream::defaultPrecision(), derivativesFolder_, distanceSens_, dndbSens_, dSdbSens_, dVdbSens_, dxdbDirectSens_, dxdbSurfSens_, dxdbVolSens_, Foam::endl(), adjointSensitivity::getAdjointSolver(), adjointSensitivity::getSuffix(), Foam::max(), designVariables::mesh_, name, optionsSens_, Foam::setw(), solver::solverName(), and Foam::type().
Referenced by assembleSensitivities().


|
virtual |
Get dxdb for all mesh points.
Reimplemented in volumetricBSplinesDesignVariables.
Definition at line 452 of file shapeDesignVariables.C.
References tmp< T >::New().

|
virtual |
Get dxdb for a given design variable and patch.
Reimplemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
Definition at line 462 of file shapeDesignVariables.C.
References NotImplemented.
Referenced by assembleSensitivities(), and solveMeshMovementEqn().

|
virtual |
Get dndb for a given design variable and patch.
Reimplemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
Definition at line 473 of file shapeDesignVariables.C.
References NotImplemented.
Referenced by assembleSensitivities().

|
virtual |
Get dSdb for a given design variable and patch.
Reimplemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
Definition at line 484 of file shapeDesignVariables.C.
References NotImplemented.
Referenced by assembleSensitivities().

|
virtual |
Get dCdb for a given design variable.
Used for FI-based sensitivities
Reimplemented in BezierDesignVariables, and volumetricBSplinesDesignVariables.
Definition at line 496 of file shapeDesignVariables.C.
References NotImplemented.
Referenced by assembleSensitivities().

|
protected |
Patches to be moved by the design variables.
Definition at line 60 of file shapeDesignVariables.H.
Referenced by assembleSensitivities(), BezierDesignVariables::dCdb(), getPatches(), readDict(), volumetricBSplinesDesignVariables::setDisplacement(), and shapeDesignVariables().
|
protected |
Mesh movement mechanism.
Definition at line 65 of file shapeDesignVariables.H.
Referenced by volumetricBSplinesDesignVariables::dxdbVol(), moveMesh(), readDict(), returnDisplacementMethod(), volumetricBSplinesDesignVariables::setDisplacement(), shapeDesignVariables(), and BezierDesignVariables::update().
|
protected |
Store old points. Useful for line search.
Definition at line 70 of file shapeDesignVariables.H.
Referenced by resetDesignVariables(), shapeDesignVariables(), and storeDesignVariables().
|
protected |
Write the mesh points irrespective of whether this is a write time.
Definition at line 75 of file shapeDesignVariables.H.
Referenced by moveMesh(), readDict(), and shapeDesignVariables().
|
protected |
Flow related term.
Term including grad(dxdb) in the volume integrals of the FI formulation
Definition at line 85 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Flow related term.
Main term in the E-SI formulation. Is the surface intergral emerging after performing the Gauss-divergence theorem on the FI-based sensitivities
Definition at line 94 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on delta(n dS)/delta b.
Definition at line 99 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on delta(n)/delta b.
Definition at line 104 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on delta(x)/delta b for objectives that directly depend on x.
Definition at line 110 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on delta(V)/delta b.
Definition at line 115 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on distance differentiation.
Definition at line 120 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on fvOptions.
Definition at line 125 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Term depending on the differenation of boundary conditions.
Definition at line 130 of file shapeDesignVariables.H.
Referenced by allocateSensFields(), assembleSensitivities(), shapeDesignVariables(), writeSensitivities(), and zeroSensFields().
|
protected |
Name of the sensitivity derivatives folder.
Definition at line 135 of file shapeDesignVariables.H.
Referenced by shapeDesignVariables(), and writeSensitivities().