MAST
structural_system.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2019 Manav Bhatia
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __mast__structural_system_h__
21 #define __mast__structural_system_h__
22 
23 // C++ includes
24 #include <memory>
25 
26 // MAST includes
27 #include "base/nonlinear_system.h"
28 
29 // libMesh includes
30 #include "libmesh/nonlinear_implicit_system.h"
31 #include "libmesh/enum_eigen_solver_type.h"
32 #include "libmesh/eigen_system.h"
33 
34 
35 namespace MAST {
36 
37 
38  // Forward declerations
39  class Parameter;
40 
46  public MAST::NonlinearSystem {
47 
48  public:
49 
53  StructuralSystem(libMesh::EquationSystems& es,
54  const std::string& name,
55  const unsigned int number);
56 
57 
58  virtual ~StructuralSystem();
59 
60 
65  Real min_p,
66  Real max_p);
67 
68 
73  virtual void clear () libmesh_override;
74 
75 
79  virtual void solve (MAST::AssemblyElemOperations& elem_ops,
80  MAST::AssemblyBase& assembly) libmesh_override;
81 
82 
83  protected:
84 
85 
89  unsigned int _iter;
90 
91 
96 
97 
102 
103 
108 
109 
114 
115  };
116 }
117 
118 
119 #endif // __mast__structural_system_h__
void set_load_parameter(MAST::Parameter &param, Real min_p, Real max_p)
sets the laod parameter for incrementing
Real _dl
value of update length
This class implements a system for solution of nonlinear systems.
MAST::Parameter * _load_param
load parameter that is updated by this solution procedure
unsigned int _iter
iteration counter
This is a scalar function whose value can be changed and one that can be used as a design variable in...
Definition: parameter.h:35
libMesh::Real Real
virtual void clear() libmesh_override
Clear all the data structures associated with the system.
Real _beta
value of beta that scales the external load vector in the constrain
StructuralSystem(libMesh::EquationSystems &es, const std::string &name, const unsigned int number)
Default constructor.
This class implements a system for quasi-static analysis of nonlinear structures. ...
Real _min_p
maximum and minimum values of the parameter
virtual void solve(MAST::AssemblyElemOperations &elem_ops, MAST::AssemblyBase &assembly) libmesh_override
Assembles & solves the nonlinear system R(x) = 0.