Points&Forces (survey)
Software tools facilitating the task of surveying architecture
a_fcriteria_coulomb.h
Go to the documentation of this file.
1 /*
2 Copyright 2016 Pierre SMARS (smars@yuntech.edu.tw)
3 This program is free software: you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation, either version 2 of the License, or
6 (at your option) any later version.
7 
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12 
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16 #ifndef _A_FCRITERIA_COULOMB_H_
17 #define _A_FCRITERIA_COULOMB_H_
18 
19 #include "a_fcriteria_in.h"
20 
22 {
23 public:
24  a_fcriteria_coulomb(): f_(0.5), c_(0.) {}
26  static const std::string help();
28  virtual bool ok(const a_face * f) const;
30  virtual double penalty(const a_face * f) const;
32  void f(double v) {if (v>=0) f_ = v;}
34  double f() const {return f_;}
36  void c(double v) {if (v>=0.) c_=v;}
38  double c() const {return c_;}
39 protected:
40  double f_;
41  double c_;
42 };
43 
44 #endif
45 
Definition: a_face.h:33
virtual bool ok(const a_face *f) const
return true if forces on the face are passing through the face and shear is not too high
virtual double penalty(const a_face *f) const
return max excentricity if abs is higher than max (1. by default)
void f(double v)
set max f friction coefficient
void c(double v)
set cohesion
static const std::string help()
get information about the class
double f() const
get max f friction coefficient
double c() const
get cohesion