GCC Code Coverage Report


Directory: ./
File: Model/ARDModel.cpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 0 21 0.0%
Branches: 0 10 0.0%

Line Branch Exec Source
1 // ______ ______ _ _ _____ ______
2 // | ____| ____| | (_)/ ____| | ____|
3 // | |__ | |__ | | _| (___ ___| |__
4 // | __| | __| | | | |\___ \ / __| __|
5 // | | | |____| |____| |____) | (__| |____
6 // |_| |______|______|_|_____/ \___|______|
7 // Finite Elements for Life Sciences and Engineering
8 //
9 // License: LGL2.1 License
10 // FELiScE default license: LICENSE in root folder
11 //
12 // Main authors: E. Schenone
13 //
14
15 // System includes
16
17 // External includes
18
19 // Project includes
20 #include "Model/ARDModel.hpp"
21
22 namespace felisce {
23 ARDModel::ARDModel():Model() {
24 m_name = "ARD";
25 }
26
27 ARDModel::~ARDModel() = default;
28
29
30 void ARDModel::forward() {
31 // Write solution for postprocessing (if required)
32 writeSolution();
33
34 // Advance time step.
35 updateTime();
36
37 // Print time information
38 printNewTimeIterationBanner();
39
40 //Assembly loop on elements.
41 m_linearProblem[0]->assembleMatrixRHS(MpiInfo::rankProc());
42
43 //Apply boundary conditions.
44 m_linearProblem[0]->finalizeEssBCTransient();
45 m_linearProblem[0]->applyBC(FelisceParam::instance().essentialBoundaryConditionsMethod, MpiInfo::rankProc());
46
47 //m_linearProblem[0]->eigenvalue();
48 //Solve linear system.
49 m_linearProblem[0]->solve(MpiInfo::rankProc(), MpiInfo::numProc());
50 }
51
52 int ARDModel::getNstate() const {
53 return m_linearProblem[0]->numDof();
54 }
55
56 void ARDModel::getState(double* & state) {
57 m_linearProblem[0]->getSolution(state, MpiInfo::numProc(), MpiInfo::rankProc());
58 }
59
60 void ARDModel::getState_swig(double* data, felInt numDof) {
61 double * state;
62 m_linearProblem[0]->getSolution(state, MpiInfo::numProc(), MpiInfo::rankProc());
63 for (felInt i=0 ; i<numDof ; i++) {
64 data[i] = state[i];
65 }
66 }
67
68 void ARDModel::setState(double* & state) {
69 m_linearProblem[0]->setSolution(state, MpiInfo::numProc(), MpiInfo::rankProc());
70 }
71 }
72