BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_FEM_DofMgr_SolverData.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
12#ifndef BELFEM_CL_FEM_DOFMGR_SOLVERDATA_HPP
13#define BELFEM_CL_FEM_DOFMGR_SOLVERDATA_HPP
14
15#include "typedefs.hpp"
16#include "cl_Cell.hpp"
17#include "cl_Map.hpp"
18#include "cl_Vector.hpp"
19#include "cl_ShiftRegister.hpp"
20#include "cl_SpMatrix.hpp"
21
22#include "cl_Solver.hpp"
23
24#include "cl_IWG.hpp"
25#include "cl_FEM_Dof.hpp"
27#include "cl_HDF5.hpp"
28
29namespace belfem
30{
31 class Mesh;
32
33 namespace fem
34 {
35
36 class Kernel;
37
38 class DofManager;
39
40 namespace dofmgr
41 {
49 {
50 System, // A: Free → Free ( Picard operator; the matrix SolverData::system_matrix() returns )
51 Jacobian, // A + dA/dx term: Free → Free ( Newton tangent, shares the pattern of A;
52 // assemble_newton() adds the derivative term )
53 Enforcement, // E: Fixed → Free (enforces constraints, computes forces)
54 Dirichlet, // D: Free → Fixed (Dirichlet boundary conditions)
55 Imposition, // I: Fixed → Fixed (self-coupling of imposed values)
56 FullMass, // full mass matrix, including fixed dofs
57 FullStiffness // full stiffness matrix, including fixed dofs
58 };
59
60 string
61 to_string( const MatrixType aType );
62
63 class DofData ;
64 class BlockData ;
65 class SideSetData ;
66
68 {
70 DofManager * mParent;
71
73 Kernel * mKernel;
74
75 DofData * mDofData ;
76 BlockData * mBlockData ;
77 SideSetData * mSideSetData ;
78
79 // my rank
80 const proc_t mCommRank;
81 const proc_t mCommSize ;
82
83 Cell< Dof * > & mDOFs ;
84
85 const index_t & mNumberOfFreeDofs ;
86 const index_t & mNumberOfFixedDofs ;
87 //const index_t & mNumberOfHangingDofs ;
88
89 const index_t & mMyNumberOfFreeDofs ;
90 const index_t & mMyNumberOfFixedDofs ;
91 const index_t & mMyNumberOfHangingDofs ;
92
93 // The JEDI Block Matrix System - Computing the Force Vector
94 // Block system: [ J D ] [ x ] [ f ]
95 // [ E I ] [ y ] = [ g ]
96 //
97 // Physical interpretation in structural mechanics:
98 // First equation: J*x = f - D*y (solve for free DOFs)
99 // Second equation: E*x + I*y = g (computes reaction forces!)
100 //
101 // The JEDI system literally computes "the Force" at constraints!
102 SpMatrix * mSystemMatrix = nullptr ; // A: Free → Free coupling
103 SpMatrix * mEnforcementMatrix = nullptr ; // E: Fixed → Free (enforces constraints, computes forces)
104 SpMatrix * mDirichletMatrix = nullptr ; // D: Free → Fixed (Dirichlet boundary conditions)
105 SpMatrix * mImpositionMatrix = nullptr ; // I: Fixed → Fixed (self-coupling of imposed values)
106
107 SpMatrix * mFullMassMatrix = nullptr ;
108 SpMatrix * mFullStiffnessMatrix = nullptr ;
109 SpMatrix * mJacobianMatrix = nullptr ;
110
111 // indices on master matrix
112 Cell< Vector< index_t > > mSystemTable;
113 Cell< Vector< index_t > > mJacobianTable;
114 Cell< Vector< index_t > > mEnforcementTable;
115 Cell< Vector< index_t > > mDirichletTable;
116 Cell< Vector< index_t > > mImpositionTable;
117
118 Cell< Vector< index_t > > mFullMatrixTable;
119
120 // left hand side ( field values or deltas )
121 Vector< real > mLhsVector;
122 Matrix< real > mLhsMatrix;
123
124 // right hand side
125 Vector< real > mRhsVector;
126 Matrix< real > mRhsMatrix;
127
131 Vector< real > mRhsBackup;
132
138 Vector< real > mRhsOriginal;
139
143 Vector< real > mFixedValuesScratch;
144
148 Cell< mesh::Field * > mCollectedFields;
149
156 bool mResidualReady = false ;
157
158 // contains the norm of the rhs vector
159 real mRhsNorm = BELFEM_QUIET_NAN ;
160
164 real mAbsoluteResidual = BELFEM_REAL_MAX ;
165
169 real mFixedPointResidual = BELFEM_REAL_MAX ;
170
181 real mPreUpdateResidual = BELFEM_QUIET_NAN ;
182
183 // special field needed for timestepping
184 Vector< real > mFieldValues ;
185
186 // data container for convective data
187 // contains e.g. the heatflux or external pressure
188 Vector< real > mConvection ;
189
190 // vector for volume loads, eg. imposed current
191 Vector< real > mVolumeLoads ;
192
194 Solver * mSolver = nullptr ;
195
197 bool mUseResetValues = false ;
198 Vector< real > mRhsVector0 ;
199 Matrix< real > mRhsMatrix0 ;
200 Vector< real > mSystemValues0 ;
201 Vector< real > mJacobianValues0 ;
202 Vector< real > mDirichletValues0 ;
203 Vector< real > mEnforcementValues0 ;
204 Vector< real > mImpositionValues0 ;
205
207 bool mUseJediForce = false ;
208 bool mUseFullForce = false ;
209 Cell< index_t > mWorkDofIndices ;
210
214 uint mAndersonDepth = 0 ;
215
218 ShiftRegister< Vector< real > > * mAndersonX = nullptr ;
219 ShiftRegister< Vector< real > > * mAndersonR = nullptr ;
220
224 Vector< real > mAndersonXStage ;
225 Vector< real > mAndersonRStage ;
226 bool mAndersonStaged = false ;
227
229 Matrix< real > mAndersonDeltaR ;
230 Vector< real > mAndersonRhs ;
231 Vector< real > mAndersonWork ;
232 Vector< real > mAndersonGamma ;
233 Vector< real > mAndersonColNorm ;
234 Vector< real > mAndersonXNew ;
235
238 void
239 anderson_update( IWG * aIWG, Cell< mesh::Field * > & aFields );
240
241//------------------------------------------------------------------------------
242 public:
243//------------------------------------------------------------------------------
244
245 SolverData( DofManager * aParent,
246 DofData * aDofData,
247 BlockData * aBlockData,
248 SideSetData * aSideSetData );
249
250//------------------------------------------------------------------------------
251
252 ~SolverData() ;
253
254//------------------------------------------------------------------------------
255
256 void
258
259//------------------------------------------------------------------------------
260
261 void
263 const Vector< id_t > & aGraphData,
264 Graph & aFreeDofs,
265 Graph & aFixedDofs );
266
267//------------------------------------------------------------------------------
268
269 void
271
272//------------------------------------------------------------------------------
273
274 void
276
277//------------------------------------------------------------------------------
278
279 void
280 reset();
281
282//------------------------------------------------------------------------------
283
284 void
286
287//------------------------------------------------------------------------------
288
289 void
290 reset_matrices( const bool aFullForce = false );
291
292//------------------------------------------------------------------------------
293
294 void
296
297//------------------------------------------------------------------------------
298
299 void
301
302//------------------------------------------------------------------------------
303
304 void
305 assemble_jacobian( Element * aElement,
306 const Matrix< real > & aJacobian);
307
308//------------------------------------------------------------------------------
309
310 void
312 const Matrix< real > & aMass,
313 const Matrix< real > & aStiffness );
314
315//------------------------------------------------------------------------------
316
317 void
318 assemble_newton( Element * aElement,
319 const Matrix< real > & adJdx );
320
321//------------------------------------------------------------------------------
322
323 void
324 assemble_rhs( Element * aElement,
325 const Vector< real > & aRHS );
326//------------------------------------------------------------------------------
327
328 void
329 assemble_volume_loads( Element * aElement,
330 const Vector< real > & aRHS );
331
332//------------------------------------------------------------------------------
333
334 void
335 asseble_surface_loads( Element * aElement,
336 const Vector< real > & aRHS );
337
338//------------------------------------------------------------------------------
339
340 void
341 assemble_rhs( Element * aElement,
342 const Matrix< real > & aRHS );
343
344//------------------------------------------------------------------------------
345
346 void
347 collect_matrices( const bool aFullForce = false );
348
349//------------------------------------------------------------------------------
350
351 void
353
354//------------------------------------------------------------------------------
355
356 void
357 collect_vector( Vector< real > & aVector );
358
359//------------------------------------------------------------------------------
360
361 void
363
364//------------------------------------------------------------------------------
365
366 void
368
369//------------------------------------------------------------------------------
370
374 void
375 set_solver( const SolverParameters & aParams );
376
377//------------------------------------------------------------------------------
378
382 Solver *
383 solver();
384
385//------------------------------------------------------------------------------
386
393 void
394 solve();
395
396//------------------------------------------------------------------------------
397
407 void
409
410//------------------------------------------------------------------------------
411
419 void
421
422//------------------------------------------------------------------------------
423
428 void
430 {
431 mResidualReady = false ;
432 }
433
434//------------------------------------------------------------------------------
435
439 real
440 residual( const uint aIteration ) ;
441
442//------------------------------------------------------------------------------
443
448 real
450 {
451 return mAbsoluteResidual ;
452 }
453
454//------------------------------------------------------------------------------
455
462 real
464 {
465 return mPreUpdateResidual ;
466 }
467
468//------------------------------------------------------------------------------
469
474 real
476 {
477 return mFixedPointResidual ;
478 }
479
480//------------------------------------------------------------------------------
481
486 void
487 set_anderson_depth( const uint aDepth );
488
494 void
496
500 void
502
507 void
509
510//------------------------------------------------------------------------------
511
512 SpMatrix *
514
515//------------------------------------------------------------------------------
516
517 SpMatrix *
518 enforcement();
519
520//------------------------------------------------------------------------------
521
522 SpMatrix *
523 dirichlet();
524
525//------------------------------------------------------------------------------
526
527 SpMatrix *
528 imposition();
529
530//------------------------------------------------------------------------------
531
532 SpMatrix *
533 matrix( const MatrixType aType );
534
535//------------------------------------------------------------------------------
536
538 tables( const MatrixType aType );
539
540//------------------------------------------------------------------------------
541
543 rhs_vector() ;
544
545//------------------------------------------------------------------------------
546
547 real
548 rhs_norm() ;
549
550//------------------------------------------------------------------------------
551
553 volume_loads() ;
554
555//------------------------------------------------------------------------------
556
558 surface_loads() ;
559
560//------------------------------------------------------------------------------
561
562 index_t
563 number_of_free_dofs() const ;
564
565//------------------------------------------------------------------------------
566
567 index_t
568 number_of_fixed_dofs() const ;
569
570//------------------------------------------------------------------------------
571
572 index_t
573 my_number_of_free_dofs() const ;
574
575//------------------------------------------------------------------------------
576
577 index_t
579
580//------------------------------------------------------------------------------
581
582 void
583 save_system( const string & aPath );
584
585//------------------------------------------------------------------------------
586
587 void
588 load_system( const string & aPath );
589
590//------------------------------------------------------------------------------
591
592 void
593 remember_initialization_values( const bool aSaveRHS );
594
595//------------------------------------------------------------------------------
596
597 void
598 use_reset_values( const bool aFlag );
599
600//------------------------------------------------------------------------------
601
602 void
603 use_jedi_force( const bool aFlag ) ;
604
605//------------------------------------------------------------------------------
606
607 void
608 use_full_force( const bool aFlag );
609
610#ifdef BELFEM_HDF5
611 void
612 save_system( HDF5 & aFile );
613
614 void
615 load_system( HDF5 & aFile );
616#endif
617
618//----------------------------------------------------------------------------
619
620 void
621 populate_graph( const Vector< id_t > & aData,
622 const MatrixType aMatrixType,
623 Graph & aFreeDofs,
624 Graph & aFixedDofs,
625 bool aLinkToSelf = true );
626
627//------------------------------------------------------------------------------
628 private:
629//------------------------------------------------------------------------------
630
631 void
632 compute_element_dof_connectivity( Vector< id_t > & aData );
633
634//------------------------------------------------------------------------------
635
636 void
637 compute_dof_element_connectivity( Vector< id_t > & aData );
638
639//----------------------------------------------------------------------------
640
641 void
642 compute_dof_dof_connectivity(
643 const Vector< id_t > & aDofWiseData,
644 const Vector< id_t > & aElementWiseData,
645 Vector< id_t > & aConnectivity );
646
647//----------------------------------------------------------------------------
648
649 void
650 unite_dofs(
651 const Cell< Vector<id_t > > & aConnectivities,
652 Vector< id_t > & aConnectivity );
653
654
655//-----------------------------------------------------------------------------
656
657 void
658 collect_fields( Cell< mesh::Field * > & aFields );
659
660//------------------------------------------------------------------------------
661
662 void
663 compute_hanging_dofs( Cell< mesh::Field * > & aFields );
664
665//------------------------------------------------------------------------------
666 };
667//------------------------------------------------------------------------------
668
669 inline Solver *
671 {
672 return mSolver ;
673 }
674
675//------------------------------------------------------------------------------
676
677 inline SpMatrix *
679 {
680 return mSystemMatrix ;
681 }
682
683//------------------------------------------------------------------------------
684
685 inline SpMatrix *
687 {
688 return mEnforcementMatrix ;
689 }
690
691//------------------------------------------------------------------------------
692
693 inline SpMatrix *
695 {
696 return mDirichletMatrix ;
697 }
698
699//------------------------------------------------------------------------------
700
701 inline SpMatrix *
703 {
704 return mImpositionMatrix ;
705 }
706
707//------------------------------------------------------------------------------
708
709 inline Vector< real > &
711 {
712 return mRhsVector ;
713 }
714
715//------------------------------------------------------------------------------
716
717 inline real
719 {
720 return mRhsNorm ;
721 }
722
723//------------------------------------------------------------------------------
724
725 inline Vector< real > &
727 {
728 return mVolumeLoads ;
729 }
730
731//------------------------------------------------------------------------------
732
733 inline Vector< real > &
735 {
736 return mConvection ;
737 }
738
739//------------------------------------------------------------------------------
740
741 inline index_t
743 {
744 return mNumberOfFreeDofs ;
745 }
746
747//------------------------------------------------------------------------------
748
749 inline index_t
751 {
752 return mNumberOfFixedDofs ;
753 }
754
755//------------------------------------------------------------------------------
756
757 inline index_t
759 {
760 return mMyNumberOfFreeDofs ;
761 }
762
763//------------------------------------------------------------------------------
764
765 inline index_t
767 {
768 return mMyNumberOfFixedDofs ;
769 }
770
771//------------------------------------------------------------------------------
772
773 inline void
775 {
776 mUseResetValues = aFlag ;
777 }
778
779//------------------------------------------------------------------------------
780
781 inline SpMatrix *
783 {
784 switch( aType )
785 {
786 case System: return mSystemMatrix ;
787 case Jacobian: return mJacobianMatrix ;
788 case Enforcement: return mEnforcementMatrix ;
789 case Dirichlet: return mDirichletMatrix ;
790 case Imposition: return mImpositionMatrix ;
791 case FullMass: return mFullMassMatrix ;
792 case FullStiffness: return mFullStiffnessMatrix ;
793 default: return nullptr ;
794 }
795 }
796
797//------------------------------------------------------------------------------
798
799 inline Cell< Vector< index_t > > &
801 {
802 switch ( aType )
803 {
804 case System: return mSystemTable ;
805 case Jacobian: return mJacobianTable ;
806 case Enforcement: return mEnforcementTable ;
807 case Dirichlet: return mDirichletTable ;
808 case Imposition: return mImpositionTable ;
809 case FullMass: return mFullMatrixTable ;
810 case FullStiffness: return mFullMatrixTable ;
811 default:
812 {
813 BELFEM_ERROR( false, "Invalid matrix type");
814 return mSystemTable ;
815 }
816 }
817 }
818
819//------------------------------------------------------------------------------
820 } /* end namespace dofmgr */
821 } /* end namespace fem */
822} /* end namespace belfem */
823
824#endif //BELFEM_CL_FEM_DOFMGR_SOLVERDATA_HPP
#define BELFEM_ERROR(aCheck,...)
Definition assert.hpp:264
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Hierarchical data format I/O.
Definition cl_HDF5.hpp:39
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Fixed-capacity FIFO with history, for time-stepping.
Definition cl_ShiftRegister.hpp:74
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
this class creates the DOFs based on the passed equation object.
Definition cl_FEM_DofManager.hpp:55
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_DofMgr_BlockData.hpp:32
Definition cl_FEM_DofMgr_DofData.hpp:36
Definition cl_FEM_DofMgr_SideSetData.hpp:39
void solve_from_residual()
Phase 2: consume the residual left by compute_residual(), run the linear solve and the algorithm's up...
Definition cl_FEM_DofMgr_SolverData.cpp:2403
void save_system(const string &aPath)
Definition cl_FEM_DofMgr_SolverData.cpp:2665
index_t my_number_of_free_dofs() const
Definition cl_FEM_DofMgr_SolverData.hpp:758
void use_reset_values(const bool aFlag)
Definition cl_FEM_DofMgr_SolverData.hpp:774
void load_system(const string &aPath)
Definition cl_FEM_DofMgr_SolverData.cpp:2684
SpMatrix * system_matrix()
Definition cl_FEM_DofMgr_SolverData.hpp:678
void use_full_force(const bool aFlag)
Definition cl_FEM_DofMgr_SolverData.cpp:212
SpMatrix * matrix(const MatrixType aType)
Definition cl_FEM_DofMgr_SolverData.hpp:782
Solver * solver()
expose the solver
Definition cl_FEM_DofMgr_SolverData.hpp:670
void assemble_volume_loads(Element *aElement, const Vector< real > &aRHS)
Definition cl_FEM_DofMgr_SolverData.cpp:1780
void reset_convection()
Definition cl_FEM_DofMgr_SolverData.cpp:153
void solve()
solve the system.
Definition cl_FEM_DofMgr_SolverData.cpp:2066
index_t number_of_fixed_dofs() const
Definition cl_FEM_DofMgr_SolverData.hpp:750
SpMatrix * enforcement()
Definition cl_FEM_DofMgr_SolverData.hpp:686
void allocate_matrices(const Vector< id_t > &aGraphData, Graph &aFreeDofs, Graph &aFixedDofs)
Allocates sparse matrices for the finite element system.
Definition cl_FEM_DofMgr_SolverData.cpp:271
void reset_rhs_vector()
Definition cl_FEM_DofMgr_SolverData.cpp:1553
void collect_matrices(const bool aFullForce=false)
Definition cl_FEM_DofMgr_SolverData.cpp:1847
void update_field_values()
Definition cl_FEM_DofMgr_SolverData.cpp:2023
void set_anderson_depth(const uint aDepth)
activate ( depth > 0 ) or deactivate ( depth = 0 ) Anderson mixing of the Picard branch; allocates th...
Definition cl_FEM_DofMgr_SolverData.cpp:2799
Vector< real > & rhs_vector()
Definition cl_FEM_DofMgr_SolverData.hpp:710
real fixed_point_residual() const
fixed-point residual ||G(x)-x|| / ||x|| of the last Anderson update ( rank-uniform after residual() )
Definition cl_FEM_DofMgr_SolverData.hpp:475
void use_jedi_force(const bool aFlag)
Definition cl_FEM_DofMgr_SolverData.cpp:204
void invalidate_residual()
invalidate the two-phase handshake; called by a fresh assembly
Definition cl_FEM_DofMgr_SolverData.hpp:429
void assemble_rhs(Element *aElement, const Vector< real > &aRHS)
Definition cl_FEM_DofMgr_SolverData.cpp:1760
void anderson_discard()
drop the staged pair ( trial was rejected )
Definition cl_FEM_DofMgr_SolverData.cpp:2843
real pre_update_residual() const
pre-update residual of the entry state under the current assembly ( Newton iterates only,...
Definition cl_FEM_DofMgr_SolverData.hpp:463
void compute_memory()
Definition cl_FEM_DofMgr_SolverData.cpp:431
Vector< real > & surface_loads()
Definition cl_FEM_DofMgr_SolverData.hpp:734
void collect_rhs_matrix()
Definition cl_FEM_DofMgr_SolverData.cpp:1975
real residual(const uint aIteration)
return the residual
Definition cl_FEM_DofMgr_SolverData.cpp:2562
real absolute_residual() const
absolute residual norm of the last residual() call ( rank-uniform, broadcast alongside the relative v...
Definition cl_FEM_DofMgr_SolverData.hpp:449
void create_assembly_tables()
Definition cl_FEM_DofMgr_SolverData.cpp:602
void reset_rhs_matrix()
Definition cl_FEM_DofMgr_SolverData.cpp:1569
void reset_matrices(const bool aFullForce=false)
Definition cl_FEM_DofMgr_SolverData.cpp:1482
void anderson_clear()
invalidate the history ( new attempt, algorithm switch, restore, ... ); also drops any staged pair
Definition cl_FEM_DofMgr_SolverData.cpp:2851
void compute_residual()
Phase 1 of the two-phase iterative solve: prepare the load-adjusted RHS b, capture ||b||,...
Definition cl_FEM_DofMgr_SolverData.cpp:2289
void remember_initialization_values(const bool aSaveRHS)
Definition cl_FEM_DofMgr_SolverData.cpp:2613
void populate_graph(const Vector< id_t > &aData, const MatrixType aMatrixType, Graph &aFreeDofs, Graph &aFixedDofs, bool aLinkToSelf=true)
Builds vertex connectivity for sparse matrix sparsity patterns.
Definition cl_FEM_DofMgr_SolverData.cpp:786
void assemble_jacobian(Element *aElement, const Matrix< real > &aJacobian)
Definition cl_FEM_DofMgr_SolverData.cpp:1585
index_t number_of_free_dofs() const
Definition cl_FEM_DofMgr_SolverData.hpp:742
void reset()
Definition cl_FEM_DofMgr_SolverData.cpp:100
void assemble_full_matrices(Element *aElement, const Matrix< real > &aMass, const Matrix< real > &aStiffness)
Definition cl_FEM_DofMgr_SolverData.cpp:1718
index_t my_number_of_fixed_dofs() const
Definition cl_FEM_DofMgr_SolverData.hpp:766
void collect_rhs_vector()
Definition cl_FEM_DofMgr_SolverData.cpp:1917
Vector< real > & volume_loads()
Definition cl_FEM_DofMgr_SolverData.hpp:726
SpMatrix * imposition()
Definition cl_FEM_DofMgr_SolverData.hpp:702
void extract_graph_from_mesh(Vector< id_t > &aGraphData)
Definition cl_FEM_DofMgr_SolverData.cpp:161
SolverData(DofManager *aParent, DofData *aDofData, BlockData *aBlockData, SideSetData *aSideSetData)
Definition cl_FEM_DofMgr_SolverData.cpp:57
void anderson_commit()
move the staged ( x, r ) pair into the history; called by the controller once the trial iterate is ac...
Definition cl_FEM_DofMgr_SolverData.cpp:2823
real rhs_norm()
Definition cl_FEM_DofMgr_SolverData.hpp:718
Cell< Vector< index_t > > & tables(const MatrixType aType)
Definition cl_FEM_DofMgr_SolverData.hpp:800
SpMatrix * dirichlet()
Definition cl_FEM_DofMgr_SolverData.hpp:694
void collect_vector(Vector< real > &aVector)
Definition cl_FEM_DofMgr_SolverData.cpp:1925
void asseble_surface_loads(Element *aElement, const Vector< real > &aRHS)
Definition cl_FEM_DofMgr_SolverData.cpp:1801
void assemble_newton(Element *aElement, const Matrix< real > &adJdx)
Definition cl_FEM_DofMgr_SolverData.cpp:1674
void set_solver(const SolverParameters &aParams)
set the solver type for this field
Definition cl_FEM_DofMgr_SolverData.cpp:2047
Definition cl_FEM_DofMgr_BearingData.cpp:23
MatrixType
Matrix type enumeration in JEDI order.
Definition cl_FEM_DofMgr_SolverData.hpp:49
@ FullMass
Definition cl_FEM_DofMgr_SolverData.hpp:56
@ Dirichlet
Definition cl_FEM_DofMgr_SolverData.hpp:54
@ FullStiffness
Definition cl_FEM_DofMgr_SolverData.hpp:57
@ System
Definition cl_FEM_DofMgr_SolverData.hpp:50
@ Jacobian
Definition cl_FEM_DofMgr_SolverData.hpp:51
@ Enforcement
Definition cl_FEM_DofMgr_SolverData.hpp:53
@ Imposition
Definition cl_FEM_DofMgr_SolverData.hpp:55
Definition cl_IFB_LINE3.hpp:21
string to_string(const BoundaryConditionType aBoundaryConditiontype)
Definition en_FEM_BoundaryConditionType.cpp:23
USER GUIDES:
Definition cl_Capacitor.cpp:16
Cell< graph::Vertex * > Graph
Definition cl_Graph_Vertex.hpp:329
unsigned int uint
Definition typedefs.hpp:30
int proc_t
Definition commtypes.hpp:29
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36
#define BELFEM_REAL_MAX
Definition typedefs.hpp:81
#define BELFEM_QUIET_NAN
Definition typedefs.hpp:87