FEDEM Solver  R8.0
Source code of the dynamics solver
FFaTensor1.H
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2023 SAP SE
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 // This file is part of FEDEM - https://openfedem.org
7 
8 #ifndef FFA_TENSOR1_H
9 #define FFA_TENSOR1_H
10 
11 #include <iostream>
12 
13 class FFaTensor2;
14 class FFaTensor3;
15 
16 
24 {
25  double myT;
26 
27 public:
28 
29  // Constructors
30 
31  FFaTensor1(double d = 0.0) { myT = d; }
32  FFaTensor1(const FFaTensor1& t) { myT = t.myT; }
33  FFaTensor1(const FFaTensor2& t);
34  FFaTensor1(const FFaTensor3& t);
35 
36  void fill(double d) { myT = d; }
37 
38  // Local operators
39 
40  FFaTensor1& operator= (const FFaTensor1& t);
41  FFaTensor1& operator= (const FFaTensor2& t);
42  FFaTensor1& operator= (const FFaTensor3& t);
43 
45  {
46  myT += t.myT;
47  return *this;
48  }
49 
51  {
52  myT -= t.myT;
53  return *this;
54  }
55 
57  {
58  myT *= d;
59  return *this;
60  }
61 
63  {
64  myT /= d;
65  return *this;
66  }
67 
68  operator double() const { return myT; }
69 
70  // Global operators
71 
72  friend FFaTensor1 operator- (const FFaTensor1&);
73  friend FFaTensor1 operator+ (const FFaTensor1&, const FFaTensor1&);
74  friend FFaTensor1 operator- (const FFaTensor1&, const FFaTensor1&);
75  // Scaling by scalar
76  friend FFaTensor1 operator* (const FFaTensor1&, double);
77  friend FFaTensor1 operator* (double, const FFaTensor1&);
78  friend FFaTensor1 operator/ (const FFaTensor1&, double);
79  // Equality
80  friend bool operator== (const FFaTensor1&, const FFaTensor1&);
81  friend bool operator!= (const FFaTensor1&, const FFaTensor1&);
82  // Writing and reading
83  friend std::ostream& operator<< (std::ostream&, const FFaTensor1&);
84  friend std::istream& operator>> (std::istream&, FFaTensor1&);
85 };
86 
87 #endif
Definition: FFaTensor1.H:24
double myT
Definition: FFaTensor1.H:25
friend std::istream & operator>>(std::istream &, FFaTensor1 &)
Definition: FFaTensor1.C:105
friend bool operator!=(const FFaTensor1 &, const FFaTensor1 &)
Definition: FFaTensor1.C:93
friend FFaTensor1 operator+(const FFaTensor1 &, const FFaTensor1 &)
Definition: FFaTensor1.C:56
FFaTensor1 & operator*=(double d)
Definition: FFaTensor1.H:56
FFaTensor1 & operator/=(double d)
Definition: FFaTensor1.H:62
void fill(double d)
Definition: FFaTensor1.H:36
FFaTensor1 & operator+=(const FFaTensor1 &t)
Definition: FFaTensor1.H:44
FFaTensor1 & operator-=(const FFaTensor1 &t)
Definition: FFaTensor1.H:50
friend std::ostream & operator<<(std::ostream &, const FFaTensor1 &)
Definition: FFaTensor1.C:99
friend FFaTensor1 operator-(const FFaTensor1 &)
Definition: FFaTensor1.C:50
friend FFaTensor1 operator*(const FFaTensor1 &, double)
Definition: FFaTensor1.C:68
FFaTensor1(double d=0.0)
Definition: FFaTensor1.H:31
friend FFaTensor1 operator/(const FFaTensor1 &, double)
Definition: FFaTensor1.C:79
FFaTensor1 & operator=(const FFaTensor1 &t)
Definition: FFaTensor1.C:26
FFaTensor1(const FFaTensor1 &t)
Definition: FFaTensor1.H:32
friend bool operator==(const FFaTensor1 &, const FFaTensor1 &)
Definition: FFaTensor1.C:88
Definition: FFaTensor2.H:28
Definition: FFaTensor3.H:28