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
mfree.cc
Go to the documentation of this file.
1
/* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/base/mfree.cc,v 1.34 2017/01/12 14:46:09 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
/*
33
*
34
* Copyright (C) 2003-2017
35
* Giuseppe Quaranta <quaranta@aero.polimi.it>
36
*
37
* classi che implementano la risoluzione del sistema nonlineare
38
*/
39
40
#include "mbconfig.h"
/* This goes first in every *.c,*.cc file */
41
42
#include "
precond_.h
"
43
#include "
mfree.h
"
44
45
const
doublereal
defaultGamma
= 0.9;
46
47
MatrixFreeSolver::MatrixFreeSolver
(
48
const
Preconditioner::PrecondType
PType,
49
const
integer
iPStep,
50
doublereal
ITol,
51
integer
MaxIt,
52
doublereal
etaMx,
53
doublereal
T,
54
const
NonlinearSolverOptions
&
options
)
55
:
NonlinearSolver
(options),
56
pPM(NULL),
57
pRes(NULL),
58
IterTol(ITol),
59
MaxLinIt(MaxIt),
60
Tau(T),
61
gamma(
defaultGamma
),
62
etaMax(etaMx),
63
PrecondIter(iPStep),
64
bBuildMat(
true
),
65
pPrevNLP(NULL)
66
{
67
68
switch
(PType) {
69
case
Preconditioner::FULLJACOBIANMATRIX
:
70
SAFENEW
(
pPM
,
FullJacobianPr
);
71
break
;
72
73
default
:
74
silent_cerr(
"Unknown Preconditioner type; aborting"
75
<< std::endl);
76
throw
ErrGeneric
(
MBDYN_EXCEPT_ARGS
);
77
}
78
}
79
80
MatrixFreeSolver::~MatrixFreeSolver
(
void
)
81
{
82
if
(
pPM
) {
83
SAFEDELETE
(
pPM
);
84
pPM
= 0;
85
}
86
}
87
MatrixFreeSolver::pPM
Preconditioner * pPM
Definition:
mfree.h:61
Preconditioner::PrecondType
PrecondType
Definition:
precond.h:49
defaultGamma
const doublereal defaultGamma
Definition:
mfree.cc:45
MBDYN_EXCEPT_ARGS
#define MBDYN_EXCEPT_ARGS
Definition:
except.h:63
precond_.h
FullJacobianPr
Definition:
precond_.h:45
SAFENEW
#define SAFENEW(pnt, item)
Definition:
mynewmem.h:695
MatrixFreeSolver::MatrixFreeSolver
MatrixFreeSolver(const Preconditioner::PrecondType PType, const integer iPStep, doublereal ITol, integer MaxIt, doublereal etaMx, doublereal T, const NonlinearSolverOptions &options)
Definition:
mfree.cc:47
NonlinearSolver::ErrGeneric
Definition:
nonlin.h:234
true
Definition:
mbdyn.h:77
Preconditioner::FULLJACOBIANMATRIX
Definition:
precond.h:51
NonlinearSolver
Definition:
nonlin.h:211
options
struct option options[]
Definition:
ann_in.c:46
mfree.h
MatrixFreeSolver::~MatrixFreeSolver
~MatrixFreeSolver(void)
Definition:
mfree.cc:80
NonlinearSolverOptions
Definition:
nonlin.h:195
doublereal
double doublereal
Definition:
colamd.c:52
integer
long int integer
Definition:
colamd.c:51
SAFEDELETE
#define SAFEDELETE(pnt)
Definition:
mynewmem.h:710
mbdyn
base
mfree.cc
Generated on Fri Apr 13 2018 10:19:34 for MBDyn-1.7.3 by
1.8.7