MBDyn-1.7.3
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
mbdyn_siconos.h
Go to the documentation of this file.
1
/* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/modules/module-nonsmooth-node/mbdyn_siconos.h,v 1.9 2017/01/12 14:55:58 masarati Exp $ */
2
/*
3
* MBDyn (C) is a multibody analysis code.
4
* http://www.mbdyn.org
5
*
6
* Copyright (C) 1996-2017
7
*
8
* Pierangelo Masarati <masarati@aero.polimi.it>
9
* Paolo Mantegazza <mantegazza@aero.polimi.it>
10
*
11
* Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
12
* via La Masa, 34 - 20156 Milano, Italy
13
* http://www.aero.polimi.it
14
*
15
* Changing this copyright notice is forbidden.
16
*
17
* This program is free software; you can redistribute it and/or modify
18
* it under the terms of the GNU General Public License as published by
19
* the Free Software Foundation (version 2 of the License).
20
*
21
*
22
* This program is distributed in the hope that it will be useful,
23
* but WITHOUT ANY WARRANTY; without even the implied warranty of
24
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25
* GNU General Public License for more details.
26
*
27
* You should have received a copy of the GNU General Public License
28
* along with this program; if not, write to the Free Software
29
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30
*/
31
/*
32
* Author: Matteo Fancello <matteo.fancello@gmail.com>
33
* Nonsmooth dynamics element;
34
* uses SICONOS <http://siconos.gforge.inria.fr/>
35
*/
36
37
#ifndef MBDYN_SICONOS_H
38
#define MBDYN_SICONOS_H
39
40
enum
LCPsolver
{
41
// quadratic programming formulation
42
QP
,
43
44
// CPG (Conjugated Projected Gradient) solver for LCP based on quadratic minimization.
45
CPG
,
46
47
// PGS is a basic Projected Gauss-Seidel solver for LCP.
48
PGS
,
49
50
// Regularized Projected Gauss-Seidel, is a solver for LCP,
51
// able to handle matrices with null diagonal terms
52
RPGS
,
53
54
// Projected Succesive over relaxation solver for LCP. See cottle, Pang Stone Chap 5
55
PSOR
,
56
57
// quadratic programm formulation for solving an non symmetric LCP
58
NSQP
,
59
60
// (LArge Time INcrements) is a basic latin solver for LCP.
61
LATIN
,
62
63
// (LArge Time INcrements) is a basic latin solver with relaxation for LCP
64
LATIN_W
,
65
66
// direct solver for LCP based on pivoting method principle for degenerate problem.
67
// Choice of pivot variable is performed via lexicographic ordering
68
LEXICO_LEMKE
,
69
70
// nonsmooth Newton method based on the min formulation (or max formulation) of the LCP
71
NEWTON_MIN
,
72
73
// uses a nonsmooth newton method based on the Fischer-Bursmeister convex function
74
NEWTON_FB
75
76
#if 0
77
// Gauss-Seidel solver based on a Sparse-Block storage for the matrix M of the LCP.
78
// Can't be used here because Matrix M of the LCP must be formulated as SparseBlockStructuredMatrix.
79
NSGS_SBM
80
#endif
81
};
82
83
struct
solver_parameters
{
84
// input parameters
85
LCPsolver
solver
;
86
double
solvertol
;
87
int
solveritermax
;
88
89
// output
90
int
info
;
91
92
// only for: CPG, PGS, RPGS, NEWTON, LATIN, PSOR
93
int
processed_iterations
;
94
double
resulting_error
;
95
};
96
97
extern
void
mbdyn_siconos_LCP_call
(
int
size,
double
M[],
double
blcp[],
double
zlem[],
double
wlem[],
solver_parameters
& solparam);
98
99
#endif // MBDYN_SICONOS_H
mbdyn_siconos_LCP_call
void mbdyn_siconos_LCP_call(int size, double M[], double blcp[], double zlem[], double wlem[], solver_parameters &solparam)
Definition:
mbdyn_siconos.cc:43
solver_parameters
Definition:
mbdyn_siconos.h:83
solver_parameters::processed_iterations
int processed_iterations
Definition:
mbdyn_siconos.h:93
NEWTON_MIN
Definition:
mbdyn_siconos.h:71
QP
Definition:
mbdyn_siconos.h:42
NSQP
Definition:
mbdyn_siconos.h:58
CPG
Definition:
mbdyn_siconos.h:45
LATIN_W
Definition:
mbdyn_siconos.h:64
solver_parameters::solveritermax
int solveritermax
Definition:
mbdyn_siconos.h:87
LCPsolver
LCPsolver
Definition:
mbdyn_siconos.h:40
RPGS
Definition:
mbdyn_siconos.h:52
NEWTON_FB
Definition:
mbdyn_siconos.h:74
LATIN
Definition:
mbdyn_siconos.h:61
LEXICO_LEMKE
Definition:
mbdyn_siconos.h:68
PSOR
Definition:
mbdyn_siconos.h:55
solver_parameters::info
int info
Definition:
mbdyn_siconos.h:90
PGS
Definition:
mbdyn_siconos.h:48
solver_parameters::resulting_error
double resulting_error
Definition:
mbdyn_siconos.h:94
solver_parameters::solvertol
double solvertol
Definition:
mbdyn_siconos.h:86
solver_parameters::solver
LCPsolver solver
Definition:
mbdyn_siconos.h:85
modules
module-nonsmooth-node
mbdyn_siconos.h
Generated on Fri Apr 13 2018 10:19:34 for MBDyn-1.7.3 by
1.8.7