analytical.hh

Go to the documentation of this file.
1 
8 #ifndef analyticalConstr_hh
9 #define analyticalConstr_hh
10 
11 #include "basics/outputOperator.hh"
13 #include "operator/bilinearForm.hh"
14 #include "function/linearForm.hh"
15 
16 namespace concepts {
17  template<typename F>
18  class TColumn;
19 }
20 
21 namespace constraints {
22 
23  template<typename F>
24  class Element;
25 
26  // ************************************************** AnalyticalConstraint **
27 
41  template<typename F>
43  public:
48  virtual void lengthT(const concepts::Element<F>& e, uint& length) = 0;
76  virtual void assembly(const concepts::Element<F>& e,
77  concepts::TColumn<F>*& t, uint& n, uint& j,
78  uint length) = 0;
82  virtual AnalyticalConstraint<F>* clone() const = 0;
83 
94  virtual void localMatrix(concepts::ElementMatrix<F>& em, uint& j,
95  const Element<F>& elm) const = 0;
96 
100  virtual void localVector(concepts::ElementMatrix<F>& em, uint& j,
101  const Element<F>& elm) const = 0;
102  };
103 
104  // ******************************************************* ConstraintsList **
105 
109  template<typename F>
111  public concepts::LinearForm<F> {
112  public:
115  virtual ~ConstraintsList();
116 
120  void add(const AnalyticalConstraint<F>& c);
121 
126 
132  concepts::TColumn<F>*& t, uint& n);
133 
134  virtual void operator()(const concepts::Element<F>& elmX,
135  const concepts::Element<F>& elmY,
136  concepts::ElementMatrix<F>& em) const;
137 
138  virtual void operator()(const concepts::Element<F>& elm,
139  concepts::ElementMatrix<F>& em) const;
140 
141  virtual ConstraintsList* clone() const;
142  protected:
143  virtual std::ostream& info(std::ostream& os) const;
144  private:
146  uint n_;
147 
150  };
151 
152 } // namespace constraints
153 
154 #endif // analyticalConstr_hh
virtual void lengthT(const concepts::Element< F > &e, uint &length)=0
Computes the length of the TColumn.
A column of a T matrix.
Definition: analytical.hh:18
An abstract class for an element of a space.
Definition: exceptions.hh:15
virtual void localMatrix(concepts::ElementMatrix< F > &em, uint &j, const Element< F > &elm) const =0
Fills the entries in the local constraints matrix em.
virtual ConstraintsList * clone() const
Virtual constructor.
Joiner class with multiple successors, i.e.
List of AnalyticalConstraint.
Definition: analytical.hh:111
Essential boundary conditions and multi-point constraints [1].
Definition: analytical.hh:21
Abstract class for a linear form.
virtual AnalyticalConstraint< F > * clone() const =0
Creates clone of itself and returns it.
Abstract function class to evaluate a bilinear form.
Definition: bilinearForm.hh:33
void add(AnalyticalConstraint< F > *c)
Adds an AnalyticalConstraint to the list.
virtual void operator()(const concepts::Element< F > &elm, concepts::ElementMatrix< F > &em) const
virtual void assembly(const concepts::Element< F > &e, concepts::TColumn< F > *&t, uint &n, uint &j, uint length)=0
Returns the TColumns t for this constraint in element e.
uint n_
Number of global constraints on the degree of freedom level.
Definition: analytical.hh:146
void add(const AnalyticalConstraint< F > &c)
Adds an AnalyticalConstraint to the list.
concepts::Joiner< AnalyticalConstraint< F > *, 1 > * constraints_
List of constraints.
Definition: analytical.hh:149
virtual std::ostream & info(std::ostream &os) const
void assembly(const concepts::Element< F > &e, concepts::TColumn< F > *&t, uint &n)
Returns the TColumns t and the number of TColumns n for this constraint in element e.
Models an analytical constraint.
Definition: analytical.hh:42
ConstraintsList()
Default constructor.
Definition: analytical.hh:114
Element matrix.
Definition: linearForm.hh:18
virtual void operator()(const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em) const
virtual void localVector(concepts::ElementMatrix< F > &em, uint &j, const Element< F > &elm) const =0
Fills the entries in the local constraints vector em.
Element of the constraints space.
Definition: analytical.hh:24
Class providing an output operator.
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich