BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_FEM_DofManager.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11#ifndef BELFEM_CL_FEM_DOFMANAGER_HPP
12#define BELFEM_CL_FEM_DOFMANAGER_HPP
13
14#include "typedefs.hpp"
15#include "cl_Cell.hpp"
16#include "cl_Vector.hpp"
17#include "cl_Map.hpp"
18#include "cl_Mesh.hpp"
19#include "cl_IWG.hpp"
20
21#include "cl_FEM_Dof.hpp"
22#include "cl_FEM_Bearing.hpp"
23#include "cl_FEM_Block.hpp"
24#include "cl_FEM_SideSet.hpp"
25
27
37
38namespace belfem
39{
40 namespace fem
41 {
42 class Kernel;
43 class Postprocessor ;
44
55 {
57 const index_t mIndex ;
58
60 dofmgr::Parameters * mParams ;
61
63 dofmgr::DofData * mDofData ;
64
66 dofmgr::BlockData * mBlockData ;
67
69 dofmgr::SideSetData * mSideSetData ;
70
72 dofmgr::BearingData * mBearingData ;
73
75 dofmgr::FieldData * mFieldData ;
76
78 dofmgr::SolverData * mSolverData ;
79
81 dofmgr::EigenValues * mEigenValues ;
82
84 bool mInitializedFlag = false ;
85
88 Cell< Postprocessor * > mPostprocessors ;
89
92 bool mJacobianIsUpToDate = false ;
93
95 Map< id_t, Element * > mElementMap ;
96
97 Cell< string > mPostprocessorSourceFields ;
98 Cell< string > mPostprocessorTargetFields ;
99
100//------------------------------------------------------------------------------
101 public:
102//------------------------------------------------------------------------------
103
110 Kernel * aParent,
111 const index_t aIndex );
112
113//-----------------------------------------------------------------------------
114
115 ~DofManager() override;
116
117//-----------------------------------------------------------------------------
118
122 void
123 set_equation( IWG * aIWG );
124
125//-----------------------------------------------------------------------------
126
130 void
131 print( const proc_t aRank=0 ) ;
132
133//------------------------------------------------------------------------------
134
135 uint
136 sideset_integration_order() const override ;
137
138//------------------------------------------------------------------------------
139
140 uint
141 block_integration_order() const override ;
142
143//------------------------------------------------------------------------------
144
146 integration_scheme() const override ;
147
148//------------------------------------------------------------------------------
149
150 bool
151 is_initialized() const override
152 {
153 return mInitializedFlag ;
154 }
155
156//------------------------------------------------------------------------------
157
161 Dof *
162 dof( const id_t aID ) override;
163
164//------------------------------------------------------------------------------
165
166 bool
167 dof_exists( const id_t aID ) const override ;
168
169//------------------------------------------------------------------------------
170
176 dofs();
177
178//-----------------------------------------------------------------------------
179
183 Bearing *
184 bearing( const id_t aID );
185
186//-----------------------------------------------------------------------------
187
191 SideSet *
192 sideset( const id_t aID ) override;
193
194//------------------------------------------------------------------------------
195
199 Block *
200 block( const id_t aID ) override;
201
202//------------------------------------------------------------------------------
203
204 void
206
207//------------------------------------------------------------------------------
208
209 id_t
210 calculate_dof_id( const mesh::Node * aNode , const uint aDofType ) const override;
211
212//------------------------------------------------------------------------------
213
214 id_t
215 calculate_dof_id( const mesh::Edge * aEdge , const uint aDofType ) const override;
216
217//------------------------------------------------------------------------------
218
219 id_t
220 calculate_dof_id( const mesh::Face * aFace , const uint aDofType ) const;
221
222//------------------------------------------------------------------------------
223
224 id_t
225 calculate_dof_id( const mesh::Facet * aFacet , const uint aDofType ) const override;
226
227//-----------------------------------------------------------------------------
228
229 void
230 initialize() override;
231
232//-----------------------------------------------------------------------------
233
239 void
240 initialize( const bool aSeedFreeDofsOnly );
241
242//------------------------------------------------------------------------------
243
244 void
245 zero();
246
247//-----------------------------------------------------------------------------
248
249 void
250 compute_jacobian( const bool aReset=true );
251
252//-----------------------------------------------------------------------------
253
254 void
255 compute_rhs( const bool aReset=true );
256
257//-----------------------------------------------------------------------------
258
259 void
260 compute_jacobian_and_rhs( const bool aReset=true );
261
262//-----------------------------------------------------------------------------
263
264 void
266
267//------------------------------------------------------------------------------
268
272 void
273 set_solver( const SolverParameters & aParams );
274
275//------------------------------------------------------------------------------
276
278 solver_data() ;
279
280//------------------------------------------------------------------------------
284 Solver *
285 solver();
286
287//-----------------------------------------------------------------------------
288
289 void
290 solve();
291
292//-----------------------------------------------------------------------------
293
296 void
298
299//-----------------------------------------------------------------------------
300
303 void
305
306//-----------------------------------------------------------------------------
307
308 real
309 residual( const uint aIteration );
310
311//-----------------------------------------------------------------------------
312
316 real
317 absolute_residual() const ;
318
319//-----------------------------------------------------------------------------
320
326 real
327 pre_update_residual() const ;
328
329//-----------------------------------------------------------------------------
330
335 real
336 fixed_point_residual() const ;
337
338//-----------------------------------------------------------------------------
339
344 bool
345 solve_failed() ;
346
347//-----------------------------------------------------------------------------
348
352 void
353 collect_fields( const Cell< string > & aFieldLabels ) override ;
354
355//-----------------------------------------------------------------------------
356
360 void
361 collect_field( const string & aFieldLabel ) ;
362
363//-----------------------------------------------------------------------------
364
368 void
369 distribute_fields( const Cell< string > & aFieldLabels ) override ;
370
371//-----------------------------------------------------------------------------
372
376 void
377 synchronize_fields( const Cell< string > & aFieldLabels ) override ;
378
379//-----------------------------------------------------------------------------
380
381 void
382 compute_volume_loads( const Vector< id_t > & aBlockIDs );
383
384//-----------------------------------------------------------------------------
399
400 SpMatrix *
401 system_matrix() ; // A: Free → Free coupling ( the Picard operator )
402
403//-----------------------------------------------------------------------------
404
405 SpMatrix *
406 dirichlet() ; // D matrix: Free → Fixed (Dirichlet BCs)
407
408//-----------------------------------------------------------------------------
409
410 SpMatrix *
411 enforcement() ; // E matrix: Fixed → Free (enforces constraints, computes forces)
412
413//-----------------------------------------------------------------------------
414
415 SpMatrix *
416 imposition() ; // I matrix: Fixed → Fixed (self-coupling of imposed values)
417
418//-----------------------------------------------------------------------------
419
420 SpMatrix *
421 full_mass();
422
423//-----------------------------------------------------------------------------
424
425 SpMatrix *
427
428//-----------------------------------------------------------------------------
429
430 void
431 full_lhs( Vector< real > & aLHS );
432
433//-----------------------------------------------------------------------------
434
436 rhs_vector();
437
438//------------------------------------------------------------------------------
439
440 real
441 rhs_norm();
442
443//------------------------------------------------------------------------------
444
445 void
446 load_system( const string & aPath );
447
448//------------------------------------------------------------------------------
449
450 void
451 save_system( const string & aPath );
452
453//------------------------------------------------------------------------------
454
455 void
457
458//------------------------------------------------------------------------------
459
466 void
468
469//------------------------------------------------------------------------------
470
471 void
473
474//------------------------------------------------------------------------------
475#ifdef BELFEM_HDF5
476
477 void
478 load_system( HDF5 & aFile );
479
480 void
481 save_system( HDF5 & aFile );
482
483#endif
484//-----------------------------------------------------------------------------
485
486 bool
487 sideset_exists( const id_t & aID ) const override ;
488
489//-----------------------------------------------------------------------------
490
491 bool
492 block_exists( const id_t & aID ) const override ;
493
494//-----------------------------------------------------------------------------
495
500 void
501 create_fields( IWG * aIWG );
502
503//-----------------------------------------------------------------------------
504
510
511//-----------------------------------------------------------------------------
512
516 void
518
519//-----------------------------------------------------------------------------
520
524 void
525 postprocess();
526
527//------------------------------------------------------------------------------
528
534 blocks();
535
536//------------------------------------------------------------------------------
537
543 sidesets();
544
545//------------------------------------------------------------------------------
550 index_t
551 number_of_wetted_nodes() const ;
552
553//------------------------------------------------------------------------------
554
555 void
557
558//------------------------------------------------------------------------------
559
564 eigen_values() ;
565
566//------------------------------------------------------------------------------
567
571 Element *
572 element( const id_t aID );
573
574 bool
575 element_exists( const id_t aID ) const ;
576
577//------------------------------------------------------------------------------
578
581
582//-----------------------------------------------------------------------------
583 private:
584//-----------------------------------------------------------------------------
585
586 void
587 reset();
588
589//------------------------------------------------------------------------------
590
591 void
592 init_dofs( const bool aSeedFreeDofsOnly );
593
594//------------------------------------------------------------------------------
595
596 void
597 init_work();
598
599//------------------------------------------------------------------------------
600
601 void
602 init_matrices();
603
604//-----------------------------------------------------------------------------
605
606 void
607 compute_rhs_vector();
608
609//-----------------------------------------------------------------------------
610
611 void
612 compute_rhs_matrix();
613
614//---------------------------------------------v--------------------------------
615
616 void
617 auto_set_materials();
618
619//------------------------------------------------------------------------------
620
621 void
622 consolidate_dofs();
623
624//------------------------------------------------------------------------------
625
626 void
627 consolidate_dofs( Element * aElement );
628
629//-----------------------------------------------------------------------------
630
631 void
632 link_bearings_with_dofs();
633
634//-----------------------------------------------------------------------------
635
636 void
637 create_element_map();
638
639//-----------------------------------------------------------------------------
640 };
641
642//-----------------------------------------------------------------------------
643
644 inline uint
646 {
647 return mParams->sideset_integration_order() ;
648 }
649
650//------------------------------------------------------------------------------
651
652 inline IntegrationScheme
654 {
655 return mParams->integration_scheme() ;
656 }
657
658//------------------------------------------------------------------------------
659
660 inline uint
662 {
663 return mParams->block_integration_order() ;
664 }
665
666
667//------------------------------------------------------------------------------
668
669 inline Dof *
671 {
672 return mDofData->dof( aID );
673 }
674
675//------------------------------------------------------------------------------
676
677 inline Cell< Dof * > &
679 {
680 return mDofData->dofs() ;
681 }
682
683//------------------------------------------------------------------------------
684
685 inline id_t
686 DofManager::calculate_dof_id( const mesh::Node * aNode , const uint aDofType ) const
687 {
688 return mDofData->node_dof_id( aNode->id(), aDofType );
689 }
690
691//------------------------------------------------------------------------------
692
693 inline id_t
694 DofManager::calculate_dof_id( const mesh::Facet * aFacet , const uint aDofType ) const
695 {
696 return mDofData->lambda_dof_id( aFacet->id(), aDofType );
697 }
698
699//------------------------------------------------------------------------------
700
701 inline id_t
702 DofManager::calculate_dof_id( const mesh::Edge * aEdge , const uint aDofType ) const
703 {
704 return mDofData->edge_dof_id( aEdge->id(), aDofType );
705 }
706
707//------------------------------------------------------------------------------
708
709 inline id_t
710 DofManager::calculate_dof_id( const mesh::Face * aFace , const uint aDofType ) const
711 {
712 return mDofData->face_dof_id( aFace->id(), aDofType );
713 }
714
715//------------------------------------------------------------------------------
716
717 inline Bearing *
719 {
720 return mBearingData->bearing( aID );
721 }
722
723//------------------------------------------------------------------------------
724
725 inline SideSet *
727 {
728 return mSideSetData->sideset( aID );
729 }
730
731//------------------------------------------------------------------------------
732
733 inline Block *
735 {
736 return mBlockData->block( aID );
737 }
738
739//------------------------------------------------------------------------------
740
741 inline dofmgr::SolverData *
743 {
744 return mSolverData ;
745 }
746
747//------------------------------------------------------------------------------
748
749 inline Solver *
751 {
752 return mSolverData->solver() ;
753 }
754
755//------------------------------------------------------------------------------
756
757 inline SpMatrix *
759 {
760 return mSolverData->system_matrix() ;
761 }
762
763//------------------------------------------------------------------------------
764
765 inline SpMatrix *
767 {
768 return mSolverData->dirichlet() ;
769 }
770
771 //------------------------------------------------------------------------------
772
773 inline SpMatrix *
775 {
776 return mSolverData->enforcement() ;
777 }
778
779//------------------------------------------------------------------------------
780
781 inline SpMatrix *
783 {
784 return mSolverData->imposition() ;
785 }
786
787//-----------------------------------------------------------------------------
788
789 inline SpMatrix *
791 {
792 return mSolverData->matrix( dofmgr::FullMass );
793 }
794
795//-----------------------------------------------------------------------------
796
797 inline SpMatrix *
799 {
800 return mSolverData->matrix( dofmgr::FullStiffness );
801 }
802
803//------------------------------------------------------------------------------
804
805 inline Vector< real > &
807 {
808 return mSolverData->rhs_vector() ;
809 }
810
811//-----------------------------------------------------------------------------
812
813 inline real
815 {
816 return mSolverData->rhs_norm() ;
817 }
818
819//-----------------------------------------------------------------------------
820
821 inline bool
822 DofManager::sideset_exists( const id_t & aID ) const
823 {
824 return mSideSetData->sideset_exists( aID );
825 }
826
827//-----------------------------------------------------------------------------
828
829 inline bool
830 DofManager::block_exists( const id_t & aID ) const
831 {
832 return mBlockData->block_exists( aID );
833 }
834
835//------------------------------------------------------------------------------
836
837 inline bool
838 DofManager::dof_exists( const id_t aID ) const
839 {
840 return mDofData->dof_exists( aID );
841 }
842
843//-----------------------------------------------------------------------------
844
850 {
851 return mPostprocessors ;
852 }
853
854//------------------------------------------------------------------------------
855
856 inline Cell< Block * > &
858 {
859 return mBlockData->blocks() ;
860 }
861
862//------------------------------------------------------------------------------
863
864 inline Cell< SideSet * > &
866 {
867 return mSideSetData->sidesets() ;
868 }
869
870//------------------------------------------------------------------------------
871
872 inline index_t
874 {
875 return mSideSetData->number_of_wetted_nodes() ;
876 }
877
878//------------------------------------------------------------------------------
879
880 inline dofmgr::EigenValues *
882 {
883 return mEigenValues ;
884 }
885
886 inline Element *
888 {
889 return mElementMap( aID );
890 }
891
892 inline bool
894 {
895 return mElementMap.key_exists( aID );
896 }
897
898//------------------------------------------------------------------------------
899
900 inline Cell< Dof * > &
902 {
903 return mDofData->abstract_dofs() ;
904 }
905
906//-----------------------------------------------------------------------------
907 } /* end namespace fem */
908} /* end namespace belfem */
909#endif //BELFEM_CL_FEM_DOFMANAGER_HPP
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Hierarchical data format I/O.
Definition cl_HDF5.hpp:39
Hash map (unordered key-value).
Definition cl_Map.hpp:75
Unified interface to the sparse direct solvers.
Definition cl_Solver.hpp:34
Configuration for a Solver.
Definition cl_SolverParameters.hpp:27
Sparse matrix in CSR or CSC format.
Definition cl_SpMatrix.hpp:52
Definition cl_FEM_Bearing.hpp:31
Definition cl_FEM_Block.hpp:35
mesh::Block * block()
expose block object on mesh
Definition cl_FEM_Block.hpp:82
Definition cl_FEM_Dof.hpp:28
Dof * dof(const uint aIndex)
access a dof
Definition cl_FEM_Dof.hpp:511
DofManagerBase(const DofManagerType aType, Kernel *aParent)
Definition cl_FEM_DofManagerBase.cpp:24
void initialize_postprocessors()
compute the matrices for the projections
Definition cl_FEM_DofManager.cpp:1323
void compute_jacobian(const bool aReset=true)
Definition cl_FEM_DofManager.cpp:441
void compute_residual()
Definition cl_FEM_DofManager.cpp:1062
Cell< SideSet * > & sidesets()
return the sidesets on this dof manager
Definition cl_FEM_DofManager.hpp:865
void set_equation(IWG *aIWG)
select the equation that is to be solved
Definition cl_FEM_DofManager.cpp:102
void full_lhs(Vector< real > &aLHS)
Definition cl_FEM_DofManager.cpp:1601
void solve_from_residual()
Definition cl_FEM_DofManager.cpp:1077
Cell< Block * > & blocks()
return the blocks on this dof manager
Definition cl_FEM_DofManager.hpp:857
dofmgr::EigenValues * eigen_values()
expose the eigenvalue tool
Definition cl_FEM_DofManager.hpp:881
SideSet * sideset(const id_t aID) override
return a specific sideset
Definition cl_FEM_DofManager.hpp:726
void print(const proc_t aRank=0)
a test routine for development
Definition cl_FEM_DofManager.cpp:173
void extract_abstract_dofs_from_mesh()
Definition cl_FEM_DofManager.cpp:378
Cell< Postprocessor * > & postprocessors()
expose the projector arrays
Definition cl_FEM_DofManager.hpp:849
Bearing * bearing(const id_t aID)
return a specific bearing
Definition cl_FEM_DofManager.hpp:718
void create_fields(IWG *aIWG)
check that the fields demanded by the IWG exist on the mesh and create them otherwise
Definition cl_FEM_DofManager.cpp:185
Cell< Dof * > & abstract_dofs()
Definition cl_FEM_DofManager.hpp:901
SpMatrix * dirichlet()
Definition cl_FEM_DofManager.hpp:766
void synchronize_fields(const Cell< string > &aFieldLabels) override
perform a collect first, then a distribute
Definition cl_FEM_DofManager.cpp:1192
bool dof_exists(const id_t aID) const override
Definition cl_FEM_DofManager.hpp:838
void compute_full_matrices()
Definition cl_FEM_DofManager.cpp:831
bool sideset_exists(const id_t &aID) const override
Definition cl_FEM_DofManager.hpp:822
real pre_update_residual() const
pre-update residual of the entry state under the current assembly ( Newton iterates only,...
Definition cl_FEM_DofManager.cpp:1116
void compute_volume_loads(const Vector< id_t > &aBlockIDs)
Definition cl_FEM_DofManager.cpp:1203
void initialize() override
Definition cl_FEM_DofManager.cpp:330
DofManager(Kernel *aParent, const index_t aIndex)
Definition cl_FEM_DofManager.cpp:31
Element * element(const id_t aID)
returns direct access to one element.
Definition cl_FEM_DofManager.hpp:887
index_t number_of_wetted_nodes() const
return the number of wetted nodes ( nodes on sidesets with a Neumann or Alpha BC )
Definition cl_FEM_DofManager.hpp:873
void save_system(const string &aPath)
Definition cl_FEM_DofManager.cpp:1275
Cell< Dof * > & dofs()
return the non-hanging dofs ( free and fixed; hanging dofs live in DofData::hanging_dofs() )
Definition cl_FEM_DofManager.hpp:678
void postprocess()
perform the L2 projections for the secondary fields
Definition cl_FEM_DofManager.cpp:1357
void load_system(const string &aPath)
Definition cl_FEM_DofManager.cpp:1267
uint sideset_integration_order() const override
Definition cl_FEM_DofManager.hpp:645
SpMatrix * system_matrix()
The JEDI Block Matrix System - May the Force be with you!
Definition cl_FEM_DofManager.hpp:758
SpMatrix * imposition()
Definition cl_FEM_DofManager.hpp:782
bool block_exists(const id_t &aID) const override
Definition cl_FEM_DofManager.hpp:830
bool solve_failed()
true if the last solve failed softly ( soft-fail contract, see solver::Wrapper ); rank-uniform
Definition cl_FEM_DofManager.cpp:1132
uint block_integration_order() const override
Definition cl_FEM_DofManager.hpp:661
void distribute_fields(const Cell< string > &aFieldLabels) override
sends field data from master to the others
Definition cl_FEM_DofManager.cpp:1184
void reset_convection()
Definition cl_FEM_DofManager.cpp:912
void compute_jacobian_and_rhs(const bool aReset=true)
Definition cl_FEM_DofManager.cpp:623
real rhs_norm()
Definition cl_FEM_DofManager.hpp:814
SpMatrix * enforcement()
Definition cl_FEM_DofManager.hpp:774
Dof * dof(const id_t aID) override
return a specific dof
Definition cl_FEM_DofManager.hpp:670
void solve()
Definition cl_FEM_DofManager.cpp:1039
id_t calculate_dof_id(const mesh::Node *aNode, const uint aDofType) const override
Definition cl_FEM_DofManager.hpp:686
void seed_dof_values()
Definition cl_FEM_DofManager.cpp:1307
void set_solver(const SolverParameters &aParams)
set the solver type for this field
Definition cl_FEM_DofManager.cpp:1029
void compute_rhs(const bool aReset=true)
Definition cl_FEM_DofManager.cpp:568
void collect_field(const string &aFieldLabel)
collects node data from the others and send it to master
Definition cl_FEM_DofManager.cpp:1174
SpMatrix * full_stiffness()
Definition cl_FEM_DofManager.hpp:798
SpMatrix * full_mass()
Definition cl_FEM_DofManager.hpp:790
void init_dof_values()
Definition cl_FEM_DofManager.cpp:1299
void disconnect_dofs_from_mesh()
Definition cl_FEM_DofManager.cpp:1593
Solver * solver()
expose the solver
Definition cl_FEM_DofManager.hpp:750
bool element_exists(const id_t aID) const
Definition cl_FEM_DofManager.hpp:893
Vector< real > & rhs_vector()
Definition cl_FEM_DofManager.hpp:806
void zero()
Definition cl_FEM_DofManager.cpp:387
dofmgr::SolverData * solver_data()
Definition cl_FEM_DofManager.hpp:742
void collect_fields(const Cell< string > &aFieldLabels) override
collects node data from the others and send it to master
Definition cl_FEM_DofManager.cpp:1166
bool is_initialized() const override
true once initialize() has frozen the free/fixed dof split and the matrix graphs; a first fix() of a ...
Definition cl_FEM_DofManager.hpp:151
real absolute_residual() const
absolute residual norm of the last residual() call
Definition cl_FEM_DofManager.cpp:1108
IntegrationScheme integration_scheme() const override
Definition cl_FEM_DofManager.hpp:653
Block * block(const id_t aID) override
return a specific block
Definition cl_FEM_DofManager.hpp:734
real residual(const uint aIteration)
Definition cl_FEM_DofManager.cpp:1100
real fixed_point_residual() const
fixed-point residual ||G(x)-x|| / ||x|| of the last Anderson update ( REAL_MAX while Anderson is off ...
Definition cl_FEM_DofManager.cpp:1124
Definition cl_FEM_Element.hpp:41
Prototype for Integrator of Weak Form Governing Equation.
Definition cl_IWG.hpp:81
Top-level orchestrator; owns the mesh, materials, boundary conditions and DOF managers.
Definition cl_FEM_Kernel.hpp:50
Definition cl_FEM_Postprocessor.hpp:24
Definition cl_FEM_SideSet.hpp:60
Definition cl_FEM_DofMgr_BearingData.hpp:36
Definition cl_FEM_DofMgr_BlockData.hpp:32
Definition cl_FEM_DofMgr_DofData.hpp:36
Definition cl_FEM_DofMgr_EigenValues.hpp:68
Definition cl_FEM_DofMgr_FieldData.hpp:37
this is a parameter object that contains the relevant information for managing the DOFs
Definition cl_FEM_DofMgr_Parameters.hpp:34
Definition cl_FEM_DofMgr_SideSetData.hpp:39
Definition cl_FEM_DofMgr_SolverData.hpp:68
id_t id() const
Definition cl_Graph_Vertex.hpp:218
Special Edge class for NEDELEC-Type elements.
Definition cl_Edge.hpp:30
Definition cl_Face.hpp:29
Definition cl_Facet.hpp:24
@ FullMass
Definition cl_FEM_DofMgr_SolverData.hpp:56
@ FullStiffness
Definition cl_FEM_DofMgr_SolverData.hpp:57
Definition cl_IFB_LINE3.hpp:21
Definition cl_SolverMUMPS.cpp:26
USER GUIDES:
Definition cl_Capacitor.cpp:16
IntegrationScheme
Definition en_IntegrationScheme.hpp:22
unsigned int uint
Definition typedefs.hpp:30
unsigned int id_t
Definition typedefs.hpp:41
int proc_t
Definition commtypes.hpp:29
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36
Definition Node.py:1