Ice Sheet System Model  4.18
Code documentation
Functions
solutionsequence_linear.cpp File Reference

: numerical core of linear solutions More...

#include "../toolkits/toolkits.h"
#include "../classes/classes.h"
#include "../shared/shared.h"
#include "../modules/modules.h"

Go to the source code of this file.

Functions

void solutionsequence_linear (FemModel *femmodel)
 

Detailed Description

: numerical core of linear solutions

Definition in file solutionsequence_linear.cpp.

Function Documentation

◆ solutionsequence_linear()

void solutionsequence_linear ( FemModel femmodel)

Definition at line 10 of file solutionsequence_linear.cpp.

10  {
11 
12  /*intermediary: */
13  Matrix<IssmDouble>* Kff = NULL;
14  Matrix<IssmDouble>* Kfs = NULL;
15  Vector<IssmDouble>* ug = NULL;
16  Vector<IssmDouble>* uf = NULL;
17  Vector<IssmDouble>* pf = NULL;
18  Vector<IssmDouble>* df = NULL;
19  Vector<IssmDouble>* ys = NULL;
20 
21  /*Recover parameters: */
23  SystemMatricesx(&Kff,&Kfs,&pf,&df,NULL,femmodel);
25  Reduceloadx(pf, Kfs, ys); delete Kfs;
26 
28  Solverx(&uf, Kff, pf, NULL, df, femmodel->parameters);
30 
31  /*Clean up*/
32  delete Kff; delete pf; delete df;
33 
34  //#ifdef _HAVE_ADOLC_
35  // for (int i =0; i<uf->svector->M; ++i) {
36  // ADOLC_DUMP_MACRO(uf->svector->vector[i]);
37  // }
38  //#endif
39 
40  Mergesolutionfromftogx(&ug, uf,ys,femmodel->nodes,femmodel->parameters);delete uf; delete ys;
42  delete ug;
43 }
Matrix< IssmDouble >
SOLVER
#define SOLVER
Definition: Profiler.h:16
Mergesolutionfromftogx
void Mergesolutionfromftogx(Vector< IssmDouble > **pug, Vector< IssmDouble > *uf, Vector< IssmDouble > *ys, Nodes *nodes, Parameters *parameters, bool flag_ys0)
Definition: Mergesolutionfromftogx.cpp:8
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
Solverx
void Solverx(Vector< IssmDouble > **puf, Matrix< IssmDouble > *Kff, Vector< IssmDouble > *pf, Vector< IssmDouble > *uf0, Vector< IssmDouble > *df, Parameters *parameters)
Definition: Solverx.cpp:15
FemModel::UpdateConstraintsx
void UpdateConstraintsx(void)
Definition: FemModel.cpp:3027
FemModel::nodes
Nodes * nodes
Definition: FemModel.h:56
Profiler::Stop
void Stop(int tagenum, bool dontmpisync=true)
Definition: Profiler.cpp:179
Reduceloadx
void Reduceloadx(Vector< IssmDouble > *pf, Matrix< IssmDouble > *Kfs, Vector< IssmDouble > *y_s, bool flag_ys0)
Definition: Reduceloadx.cpp:14
Profiler::Start
void Start(int tagenum, bool dontmpisync=true)
Definition: Profiler.cpp:139
InputUpdateFromSolutionx
void InputUpdateFromSolutionx(FemModel *femmodel, Vector< IssmDouble > *solution)
Definition: InputUpdateFromSolutionx.cpp:9
CreateNodalConstraintsx
void CreateNodalConstraintsx(Vector< IssmDouble > **pys, Nodes *nodes)
Definition: CreateNodalConstraintsx.cpp:10
SystemMatricesx
void SystemMatricesx(Matrix< IssmDouble > **pKff, Matrix< IssmDouble > **pKfs, Vector< IssmDouble > **ppf, Vector< IssmDouble > **pdf, IssmDouble *pkmax, FemModel *femmodel, bool isAllocated)
Definition: SystemMatricesx.cpp:10
FemModel::profiler
Profiler * profiler
Definition: FemModel.h:42
Vector< IssmDouble >
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16