Ice Sheet System Model  4.18
Code documentation
Functions
CreateJacobianMatrixx.h File Reference
#include "../../classes/classes.h"
#include "../../analyses/analyses.h"

Go to the source code of this file.

Functions

void CreateJacobianMatrixx (Matrix< IssmDouble > **pJff, FemModel *femmodel, IssmDouble kmax)
 

Function Documentation

◆ CreateJacobianMatrixx()

void CreateJacobianMatrixx ( Matrix< IssmDouble > **  pJff,
FemModel femmodel,
IssmDouble  kmax 
)

Definition at line 10 of file CreateJacobianMatrixx.cpp.

10  {
11 
12  int i;
13  int configuration_type,analysisenum;
14  Element *element = NULL;
15  Load *load = NULL;
16  Matrix<IssmDouble>* Jff = NULL;
17 
18  /*Checks*/
20 
21  /*Recover some parameters*/
22  femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
24  Analysis* analysis = EnumToAnalysis(analysisenum);
25 
26  /*Initialize Jacobian Matrix*/
27  AllocateSystemMatricesx(&Jff,NULL,NULL,NULL,femmodel);
28 
29  /*Create and assemble matrix*/
30  for(i=0;i<femmodel->elements->Size();i++){
31  element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
32  ElementMatrix* Je = analysis->CreateJacobianMatrix(element);
33  if(Je) Je->AddToGlobal(Jff);
34  delete Je;
35  }
36  for (i=0;i<femmodel->loads->Size();i++){
38  load->CreateJacobianMatrix(Jff);
39  load->PenaltyCreateJacobianMatrix(Jff,kmax);
40  }
41  Jff->Assemble();
42 
43  /*Assign output pointer*/
44  delete analysis;
45  *pJff=Jff;
46 
47 }
DataSet::Size
int Size()
Definition: DataSet.cpp:399
Matrix< IssmDouble >
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
Matrix::Assemble
void Assemble(void)
Definition: Matrix.h:185
Load
Definition: Load.h:22
AllocateSystemMatricesx
void AllocateSystemMatricesx(Matrix< IssmDouble > **pKff, Matrix< IssmDouble > **pKfs, Vector< IssmDouble > **pdf, Vector< IssmDouble > **ppf, FemModel *femmodel)
Definition: AllocateSystemMatricesx.cpp:9
Load::CreateJacobianMatrix
virtual void CreateJacobianMatrix(Matrix< IssmDouble > *Jff)=0
Element
Definition: Element.h:41
FemModel::nodes
Nodes * nodes
Definition: FemModel.h:56
ConfigurationTypeEnum
@ ConfigurationTypeEnum
Definition: EnumDefinitions.h:101
FemModel::loads
Loads * loads
Definition: FemModel.h:54
FemModel::elements
Elements * elements
Definition: FemModel.h:44
EnumToAnalysis
Analysis * EnumToAnalysis(int analysis_enum)
Definition: EnumToAnalysis.cpp:13
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
Parameters::FindParam
void FindParam(bool *pinteger, int enum_type)
Definition: Parameters.cpp:262
AnalysisTypeEnum
@ AnalysisTypeEnum
Definition: EnumDefinitions.h:36
ElementMatrix::AddToGlobal
void AddToGlobal(Matrix< IssmDouble > *Kff, Matrix< IssmDouble > *Kfs)
Definition: ElementMatrix.cpp:271
ElementMatrix
Definition: ElementMatrix.h:19
Analysis
Definition: Analysis.h:30
Analysis::CreateJacobianMatrix
virtual ElementMatrix * CreateJacobianMatrix(Element *element)=0
Load::PenaltyCreateJacobianMatrix
virtual void PenaltyCreateJacobianMatrix(Matrix< IssmDouble > *Jff, IssmDouble kmax)=0
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16