67 template<sp_d T>
class Factory final {
71 unsigned n_sfbw = n_lobw + n_upbw;
81 double tolerance = 1
E-14;
84 unsigned refinement = 10;
92 SpMat<T> reference_load;
94 uvec auxiliary_encoding;
95 Col<T> auxiliary_lambda;
96 Col<T> auxiliary_resistance;
97 Col<T> auxiliary_load;
98 SpMat<T> auxiliary_stiffness;
100 SpCol<T> trial_constraint_resistance;
101 SpCol<T> current_constraint_resistance;
108 T strain_energy = 0.;
109 T kinetic_energy = 0.;
110 T viscous_energy = 0.;
111 T complementary_energy = 0.;
114 Col<T> trial_load_factor;
116 Col<T> trial_settlement;
117 Col<T> trial_resistance;
118 Col<T> trial_damping_force;
119 Col<T> trial_inertial_force;
120 Col<T> trial_displacement;
121 Col<T> trial_velocity;
122 Col<T> trial_acceleration;
123 Col<T> trial_temperature;
125 Col<T> incre_load_factor;
127 Col<T> incre_settlement;
128 Col<T> incre_resistance;
129 Col<T> incre_damping_force;
130 Col<T> incre_inertial_force;
131 Col<T> incre_displacement;
132 Col<T> incre_velocity;
133 Col<T> incre_acceleration;
134 Col<T> incre_temperature;
136 Col<T> current_load_factor;
138 Col<T> current_settlement;
139 Col<T> current_resistance;
140 Col<T> current_damping_force;
141 Col<T> current_inertial_force;
142 Col<T> current_displacement;
143 Col<T> current_velocity;
144 Col<T> current_acceleration;
145 Col<T> current_temperature;
147 Col<T> pre_load_factor;
149 Col<T> pre_settlement;
150 Col<T> pre_resistance;
151 Col<T> pre_damping_force;
152 Col<T> pre_inertial_force;
153 Col<T> pre_displacement;
155 Col<T> pre_acceleration;
156 Col<T> pre_temperature;
158 shared_ptr<MetaMat<T>> global_mass =
nullptr;
159 shared_ptr<MetaMat<T>> global_damping =
nullptr;
160 shared_ptr<MetaMat<T>> global_stiffness =
nullptr;
161 shared_ptr<MetaMat<T>> global_geometry =
nullptr;
163 std::vector<std::mutex> global_mutex = std::vector<std::mutex>(20);
173 const bool initialized =
false;
177 void set_size(
unsigned);
178 [[nodiscard]]
unsigned get_size()
const;
180 void set_entry(uword);
181 [[nodiscard]] uword get_entry()
const;
183 void set_nlgeom(
bool);
184 [[nodiscard]]
bool is_nlgeom()
const;
186 void set_tolerance(
double);
187 [[nodiscard]]
double get_tolerance()
const;
190 [[nodiscard]]
Precision get_precision()
const;
195 void set_refinement(
unsigned);
203 [[nodiscard]]
bool is_sparse()
const;
205 void set_bandwidth(
unsigned,
unsigned);
206 void get_bandwidth(
unsigned&,
unsigned&)
const;
208 void update_reference_size();
209 void set_reference_size(
unsigned);
210 [[nodiscard]]
unsigned get_reference_size()
const;
212 void update_reference_dof(
const uvec&);
216 void set_error(
const T&);
217 const T& get_error()
const;
223 void initialize_load_factor();
224 void initialize_load();
225 void initialize_settlement();
226 void initialize_resistance();
227 void initialize_damping_force();
228 void initialize_inertial_force();
229 void initialize_displacement();
230 void initialize_velocity();
231 void initialize_acceleration();
232 void initialize_temperature();
233 void initialize_auxiliary_resistance();
235 void initialize_mass();
236 void initialize_damping();
237 void initialize_stiffness();
238 void initialize_geometry();
239 void initialize_eigen();
243 void set_ninja(
const Col<T>&);
244 void set_sushi(
const Col<T>&);
246 void set_mpc(
unsigned);
248 void set_reference_load(
const SpMat<T>&);
250 void set_trial_time(
const T&);
251 void set_trial_load_factor(
const Col<T>&);
252 void set_trial_load(
const Col<T>&);
253 void set_trial_settlement(
const Col<T>&);
254 void set_trial_resistance(
const Col<T>&);
255 void set_trial_damping_force(
const Col<T>&);
256 void set_trial_inertial_force(
const Col<T>&);
257 void set_trial_displacement(
const Col<T>&);
258 void set_trial_velocity(
const Col<T>&);
259 void set_trial_acceleration(
const Col<T>&);
260 void set_trial_temperature(
const Col<T>&);
262 void set_incre_time(
const T&);
263 void set_incre_load_factor(
const Col<T>&);
264 void set_incre_load(
const Col<T>&);
265 void set_incre_settlement(
const Col<T>&);
266 void set_incre_resistance(
const Col<T>&);
267 void set_incre_damping_force(
const Col<T>&);
268 void set_incre_inertial_force(
const Col<T>&);
269 void set_incre_displacement(
const Col<T>&);
270 void set_incre_velocity(
const Col<T>&);
271 void set_incre_acceleration(
const Col<T>&);
272 void set_incre_temperature(
const Col<T>&);
274 void set_current_time(
const T&);
275 void set_current_load_factor(
const Col<T>&);
276 void set_current_load(
const Col<T>&);
277 void set_current_settlement(
const Col<T>&);
278 void set_current_resistance(
const Col<T>&);
279 void set_current_damping_force(
const Col<T>&);
280 void set_current_inertial_force(
const Col<T>&);
281 void set_current_displacement(
const Col<T>&);
282 void set_current_velocity(
const Col<T>&);
283 void set_current_acceleration(
const Col<T>&);
284 void set_current_temperature(
const Col<T>&);
286 void set_pre_time(
const T&);
287 void set_pre_load_factor(
const Col<T>&);
288 void set_pre_load(
const Col<T>&);
289 void set_pre_settlement(
const Col<T>&);
290 void set_pre_resistance(
const Col<T>&);
291 void set_pre_damping_force(
const Col<T>&);
292 void set_pre_inertial_force(
const Col<T>&);
293 void set_pre_displacement(
const Col<T>&);
294 void set_pre_velocity(
const Col<T>&);
295 void set_pre_acceleration(
const Col<T>&);
296 void set_pre_temperature(
const Col<T>&);
299 void set_damping(
const shared_ptr<
MetaMat<T>>&);
300 void set_stiffness(
const shared_ptr<
MetaMat<T>>&);
301 void set_geometry(
const shared_ptr<
MetaMat<T>>&);
303 void set_eigenvalue(
const Col<T>&);
304 void set_eigenvector(
const Mat<T>&);
311 [[nodiscard]]
unsigned get_mpc()
const;
324 T get_strain_energy();
325 T get_kinetic_energy();
326 T get_viscous_energy();
327 T get_complementary_energy();
328 const Col<T>& get_momentum();
378 const shared_ptr<MetaMat<T>>&
get_mass()
const;
383 std::mutex& get_auxiliary_encoding_mutex();
384 std::mutex& get_auxiliary_resistance_mutex();
385 std::mutex& get_auxiliary_load_mutex();
386 std::mutex& get_auxiliary_stiffness_mutex();
388 std::mutex& get_trial_constraint_resistance_mutex();
390 std::mutex& get_trial_load_mutex();
391 std::mutex& get_trial_settlement_mutex();
393 std::mutex& get_mass_mutex();
394 std::mutex& get_damping_mutex();
395 std::mutex& get_stiffness_mutex();
396 std::mutex& get_geometry_mutex();
403 void update_trial_time(
const T&);
404 void update_trial_load_factor(
const Col<T>&);
405 void update_trial_load(
const Col<T>&);
406 void update_trial_settlement(
const Col<T>&);
407 void update_trial_resistance(
const Col<T>&);
408 void update_trial_damping_force(
const Col<T>&);
409 void update_trial_inertial_force(
const Col<T>&);
410 void update_trial_displacement(
const Col<T>&);
411 void update_trial_velocity(
const Col<T>&);
412 void update_trial_acceleration(
const Col<T>&);
413 void update_trial_temperature(
const Col<T>&);
415 void update_incre_time(
const T&);
416 void update_incre_load_factor(
const Col<T>&);
417 void update_incre_load(
const Col<T>&);
418 void update_incre_settlement(
const Col<T>&);
419 void update_incre_resistance(
const Col<T>&);
420 void update_incre_damping_force(
const Col<T>&);
421 void update_incre_inertial_force(
const Col<T>&);
422 void update_incre_displacement(
const Col<T>&);
423 void update_incre_velocity(
const Col<T>&);
424 void update_incre_acceleration(
const Col<T>&);
425 void update_incre_temperature(
const Col<T>&);
427 void update_current_time(
const T&);
428 void update_current_load_factor(
const Col<T>&);
429 void update_current_load(
const Col<T>&);
430 void update_current_settlement(
const Col<T>&);
431 void update_current_resistance(
const Col<T>&);
432 void update_current_damping_force(
const Col<T>&);
433 void update_current_inertial_force(
const Col<T>&);
434 void update_current_displacement(
const Col<T>&);
435 void update_current_velocity(
const Col<T>&);
436 void update_current_acceleration(
const Col<T>&);
437 void update_current_temperature(
const Col<T>&);
504 template<sp_d T1>
friend shared_ptr<MetaMat<T1>>&
get_mass(
const shared_ptr<
Factory<T1>>&);
514 void commit_energy();
517 void commit_status();
519 void commit_load_factor();
521 void commit_settlement();
522 void commit_resistance();
523 void commit_damping_force();
524 void commit_inertial_force();
525 void commit_displacement();
526 void commit_velocity();
527 void commit_acceleration();
528 void commit_temperature();
529 void commit_auxiliary_resistance();
531 void commit_pre_status();
532 void commit_pre_time();
533 void commit_pre_load_factor();
534 void commit_pre_load();
535 void commit_pre_settlement();
536 void commit_pre_resistance();
537 void commit_pre_damping_force();
538 void commit_pre_inertial_force();
539 void commit_pre_displacement();
540 void commit_pre_velocity();
541 void commit_pre_acceleration();
542 void commit_pre_temperature();
546 void clear_load_factor();
548 void clear_settlement();
549 void clear_resistance();
550 void clear_damping_force();
551 void clear_inertial_force();
552 void clear_displacement();
553 void clear_velocity();
554 void clear_acceleration();
555 void clear_temperature();
556 void clear_auxiliary_resistance();
560 void reset_load_factor();
562 void reset_settlement();
563 void reset_resistance();
564 void reset_damping_force();
565 void reset_inertial_force();
566 void reset_displacement();
567 void reset_velocity();
568 void reset_acceleration();
569 void reset_temperature();
570 void reset_auxiliary_resistance();
574 void clear_damping();
575 void clear_stiffness();
576 void clear_geometry();
577 void clear_auxiliary();
583 void assemble_resistance(
const Mat<T>&,
const uvec&);
584 void assemble_damping_force(
const Mat<T>&,
const uvec&);
585 void assemble_inertial_force(
const Mat<T>&,
const uvec&);
586 void assemble_mass(
const Mat<T>&,
const uvec&);
587 void assemble_damping(
const Mat<T>&,
const uvec&);
588 void assemble_stiffness(
const Mat<T>&,
const uvec&);
589 void assemble_geometry(
const Mat<T>&,
const uvec&);
590 void assemble_stiffness(
const SpMat<T>&,
const uvec&);
600 , storage_type(SS) {}
603 if(D == n_size)
return;
615 if(B == nlgeom)
return;
637 if(AT == analysis_type)
return;
645 if(SS == storage_type)
return;
655 if(L == n_lobw && U == n_upbw)
return;
670 if(S == n_rfld)
return;
687 reference_dof.clear();
696 switch(analysis_type) {
738 if(n_rfld == 0)
return;
740 trial_load_factor.zeros(n_rfld);
741 incre_load_factor.zeros(n_rfld);
742 current_load_factor.zeros(n_rfld);
744 reference_load.zeros(n_size, n_rfld);
748 trial_load.zeros(n_size);
749 incre_load.zeros(n_size);
750 current_load.zeros(n_size);
754 trial_settlement.zeros(n_size);
755 incre_settlement.zeros(n_size);
756 current_settlement.zeros(n_size);
760 trial_resistance.zeros(n_size);
761 incre_resistance.zeros(n_size);
762 current_resistance.zeros(n_size);
766 trial_damping_force.zeros(n_size);
767 incre_damping_force.zeros(n_size);
768 current_damping_force.zeros(n_size);
772 trial_inertial_force.zeros(n_size);
773 incre_inertial_force.zeros(n_size);
774 current_inertial_force.zeros(n_size);
778 trial_displacement.zeros(n_size);
779 incre_displacement.zeros(n_size);
780 current_displacement.zeros(n_size);
784 trial_velocity.zeros(n_size);
785 incre_velocity.zeros(n_size);
786 current_velocity.zeros(n_size);
790 trial_acceleration.zeros(n_size);
791 incre_acceleration.zeros(n_size);
792 current_acceleration.zeros(n_size);
796 trial_temperature.zeros(n_size);
797 incre_temperature.zeros(n_size);
798 current_temperature.zeros(n_size);
802 trial_constraint_resistance.zeros(n_size);
803 current_constraint_resistance.zeros(n_size);
819 eigenvalue.zeros(n_size);
820 eigenvector.zeros(n_size, n_size);
829 auxiliary_encoding.zeros(n_mpc);
830 auxiliary_resistance.zeros(n_mpc);
831 auxiliary_load.zeros(n_mpc);
832 auxiliary_stiffness.zeros(n_size, n_mpc);
1093 incre_time = trial_time - current_time;
1097 trial_load_factor = L;
1098 incre_load_factor = trial_load_factor - current_load_factor;
1103 incre_load = trial_load - current_load;
1107 trial_settlement =
S;
1108 incre_settlement = trial_settlement - current_settlement;
1112 trial_resistance = R;
1113 incre_resistance = trial_resistance - current_resistance;
1117 trial_damping_force = R;
1118 incre_damping_force = trial_damping_force - current_damping_force;
1122 trial_inertial_force = R;
1123 incre_inertial_force = trial_inertial_force - current_inertial_force;
1127 trial_displacement = D;
1128 incre_displacement = trial_displacement - current_displacement;
1133 incre_velocity = trial_velocity - current_velocity;
1137 trial_acceleration =
A;
1138 incre_acceleration = trial_acceleration - current_acceleration;
1142 trial_temperature =
M;
1143 incre_temperature = trial_temperature - current_temperature;
1148 trial_time = current_time + incre_time;
1152 incre_load_factor = L;
1153 trial_load_factor = current_load_factor + incre_load_factor;
1158 trial_load = current_load + incre_load;
1162 incre_settlement =
S;
1163 trial_settlement = current_settlement + incre_settlement;
1167 incre_resistance = R;
1168 trial_resistance = current_resistance + incre_resistance;
1172 incre_damping_force = R;
1173 trial_damping_force = current_damping_force + incre_damping_force;
1177 incre_inertial_force = R;
1178 trial_inertial_force = current_inertial_force + incre_inertial_force;
1182 incre_displacement = D;
1183 trial_displacement = current_displacement + incre_displacement;
1188 trial_velocity = current_velocity + incre_velocity;
1192 incre_acceleration =
A;
1193 trial_acceleration = current_acceleration + incre_acceleration;
1197 incre_temperature =
M;
1198 trial_temperature = current_temperature + incre_temperature;
1202 trial_time = current_time =
M;
1207 trial_load_factor = current_load_factor = L;
1208 incre_load_factor.zeros();
1212 trial_load = current_load = L;
1217 trial_settlement = current_settlement =
S;
1218 incre_settlement.zeros();
1222 trial_resistance = current_resistance = R;
1223 incre_resistance.zeros();
1227 trial_damping_force = current_damping_force = R;
1228 incre_damping_force.zeros();
1232 trial_inertial_force = current_inertial_force = R;
1233 incre_inertial_force.zeros();
1237 trial_displacement = current_displacement = D;
1238 incre_displacement.zeros();
1242 trial_velocity = current_velocity =
V;
1243 incre_velocity.zeros();
1247 trial_acceleration = current_acceleration =
A;
1248 incre_acceleration.zeros();
1252 trial_temperature = current_temperature =
M;
1253 incre_temperature.zeros();
1257 auto se = std::async([&] {
if(!trial_resistance.empty() && !incre_displacement.empty()) strain_energy += .5 * dot(trial_resistance + current_resistance, incre_displacement); });
1258 auto ke = std::async([&] {
if(!trial_inertial_force.empty() && !trial_velocity.empty()) kinetic_energy = .5 * dot(global_mass * trial_velocity, trial_velocity); });
1259 auto ve = std::async([&] {
if(!trial_damping_force.empty() && !incre_displacement.empty()) viscous_energy += .5 * dot(trial_damping_force + current_damping_force, incre_displacement); });
1260 auto ce = std::async([&] {
if(!trial_displacement.empty() && !incre_resistance.empty()) complementary_energy += .5 * dot(trial_displacement + current_displacement, incre_resistance); });
1261 auto mm = std::async([&] {
if(!trial_inertial_force.empty() && !trial_velocity.empty()) momentum = global_mass * trial_velocity; });
1272 kinetic_energy = 0.;
1273 viscous_energy = 0.;
1274 complementary_energy = 0.;
1296 current_time = trial_time;
1301 if(trial_load_factor.is_empty())
return;
1302 current_load_factor = trial_load_factor;
1303 incre_load_factor.zeros();
1307 if(trial_load.is_empty())
return;
1308 current_load = trial_load;
1313 if(trial_settlement.is_empty())
return;
1314 current_settlement = trial_settlement;
1315 incre_settlement.zeros();
1319 if(trial_resistance.is_empty())
return;
1320 current_resistance = trial_resistance;
1321 incre_resistance.zeros();
1325 if(trial_damping_force.is_empty())
return;
1326 current_damping_force = trial_damping_force;
1327 incre_damping_force.zeros();
1331 if(trial_inertial_force.is_empty())
return;
1332 current_inertial_force = trial_inertial_force;
1333 incre_inertial_force.zeros();
1337 if(trial_displacement.is_empty())
return;
1338 current_displacement = trial_displacement;
1339 incre_displacement.zeros();
1343 if(trial_velocity.is_empty())
return;
1344 current_velocity = trial_velocity;
1345 incre_velocity.zeros();
1349 if(trial_acceleration.is_empty())
return;
1350 current_acceleration = trial_acceleration;
1351 incre_acceleration.zeros();
1355 if(trial_temperature.is_empty())
return;
1356 current_temperature = trial_temperature;
1357 incre_temperature.zeros();
1361 if(trial_constraint_resistance.is_empty())
return;
1362 current_constraint_resistance = trial_constraint_resistance;
1425 if(!pre_load_factor.is_empty()) pre_load_factor.zeros();
1426 if(!trial_load_factor.is_empty()) trial_load_factor.zeros();
1427 if(!incre_load_factor.is_empty()) incre_load_factor.zeros();
1428 if(!current_load_factor.is_empty()) current_load_factor.zeros();
1432 if(!pre_load.is_empty()) pre_load.zeros();
1433 if(!trial_load.is_empty()) trial_load.zeros();
1434 if(!incre_load.is_empty()) incre_load.zeros();
1435 if(!current_load.is_empty()) current_load.zeros();
1439 if(!pre_settlement.is_empty()) pre_settlement.zeros();
1440 if(!trial_settlement.is_empty()) trial_settlement.zeros();
1441 if(!incre_settlement.is_empty()) incre_settlement.zeros();
1442 if(!current_settlement.is_empty()) current_settlement.zeros();
1446 if(!pre_resistance.is_empty()) pre_resistance.zeros();
1447 if(!trial_resistance.is_empty()) trial_resistance.zeros();
1448 if(!incre_resistance.is_empty()) incre_resistance.zeros();
1449 if(!current_resistance.is_empty()) current_resistance.zeros();
1453 if(!pre_damping_force.is_empty()) pre_damping_force.zeros();
1454 if(!trial_damping_force.is_empty()) trial_damping_force.zeros();
1455 if(!incre_damping_force.is_empty()) incre_damping_force.zeros();
1456 if(!current_damping_force.is_empty()) current_damping_force.zeros();
1460 if(!pre_inertial_force.is_empty()) pre_inertial_force.zeros();
1461 if(!trial_inertial_force.is_empty()) trial_inertial_force.zeros();
1462 if(!incre_inertial_force.is_empty()) incre_inertial_force.zeros();
1463 if(!current_inertial_force.is_empty()) current_inertial_force.zeros();
1467 if(!pre_displacement.is_empty()) pre_displacement.zeros();
1468 if(!trial_displacement.is_empty()) trial_displacement.zeros();
1469 if(!incre_displacement.is_empty()) incre_displacement.zeros();
1470 if(!current_displacement.is_empty()) current_displacement.zeros();
1474 if(!pre_velocity.is_empty()) pre_velocity.zeros();
1475 if(!trial_velocity.is_empty()) trial_velocity.zeros();
1476 if(!incre_velocity.is_empty()) incre_velocity.zeros();
1477 if(!current_velocity.is_empty()) current_velocity.zeros();
1481 if(!pre_acceleration.is_empty()) pre_acceleration.zeros();
1482 if(!trial_acceleration.is_empty()) trial_acceleration.zeros();
1483 if(!incre_acceleration.is_empty()) incre_acceleration.zeros();
1484 if(!current_acceleration.is_empty()) current_acceleration.zeros();
1488 if(!pre_temperature.is_empty()) pre_temperature.zeros();
1489 if(!trial_temperature.is_empty()) trial_temperature.zeros();
1490 if(!incre_temperature.is_empty()) incre_temperature.zeros();
1491 if(!current_temperature.is_empty()) current_temperature.zeros();
1495 if(!trial_constraint_resistance.is_empty()) trial_constraint_resistance.zeros();
1496 if(!current_constraint_resistance.is_empty()) current_constraint_resistance.zeros();
1517 trial_time = current_time;
1522 if(trial_load_factor.is_empty())
return;
1523 trial_load_factor = current_load_factor;
1524 incre_load_factor.zeros();
1528 if(trial_load.is_empty())
return;
1529 trial_load = current_load;
1534 if(trial_settlement.is_empty())
return;
1535 trial_settlement = current_settlement;
1536 incre_settlement.zeros();
1540 if(trial_resistance.is_empty())
return;
1541 trial_resistance = current_resistance;
1542 incre_resistance.zeros();
1546 if(trial_damping_force.is_empty())
return;
1547 trial_damping_force = current_damping_force;
1548 incre_damping_force.zeros();
1552 if(trial_inertial_force.is_empty())
return;
1553 trial_inertial_force = current_inertial_force;
1554 incre_inertial_force.zeros();
1558 if(trial_displacement.is_empty())
return;
1559 trial_displacement = current_displacement;
1560 incre_displacement.zeros();
1564 if(trial_velocity.is_empty())
return;
1565 trial_velocity = current_velocity;
1566 incre_velocity.zeros();
1570 if(trial_acceleration.is_empty())
return;
1571 trial_acceleration = current_acceleration;
1572 incre_acceleration.zeros();
1576 if(trial_temperature.is_empty())
return;
1577 trial_temperature = current_temperature;
1578 incre_temperature.zeros();
1582 if(trial_constraint_resistance.is_empty())
return;
1583 trial_constraint_resistance = current_constraint_resistance;
1587 if(!eigenvalue.is_empty()) eigenvalue.zeros();
1588 if(!eigenvector.is_empty()) eigenvector.zeros();
1601 auxiliary_load.reset();
1602 auxiliary_stiffness.set_size(n_size, 0);
1603 auxiliary_resistance.reset();
1604 auxiliary_encoding.reset();
1608 global_mass =
nullptr;
1609 global_damping =
nullptr;
1610 global_stiffness =
nullptr;
1611 global_geometry =
nullptr;
1615 if(ER.is_empty())
return;
1616 for(
unsigned I = 0; I < EI.n_elem; ++I) trial_resistance(EI(I)) += ER(I);
1620 if(ER.is_empty())
return;
1621 for(
unsigned I = 0; I < EI.n_elem; ++I) trial_damping_force(EI(I)) += ER(I);
1625 if(ER.is_empty())
return;
1626 for(
unsigned I = 0; I < EI.n_elem; ++I) trial_inertial_force(EI(I)) += ER(I);
1630 if(EM.is_empty())
return;
1631 for(
unsigned I = 0; I < EI.n_elem; ++I)
for(
unsigned J = 0; J < EI.n_elem; ++J) global_mass->at(EI(J), EI(I)) += EM(J, I);
1635 if(EC.is_empty())
return;
1636 for(
unsigned I = 0; I < EI.n_elem; ++I)
for(
unsigned J = 0; J < EI.n_elem; ++J) global_damping->at(EI(J), EI(I)) += EC(J, I);
1640 if(EK.is_empty())
return;
1641 for(
unsigned I = 0; I < EI.n_elem; ++I)
for(
unsigned J = 0; J < EI.n_elem; ++J) global_stiffness->at(EI(J), EI(I)) += EK(J, I);
1645 if(EG.is_empty() || !nlgeom)
return;
1646 for(
unsigned I = 0; I < EI.n_elem; ++I)
for(
unsigned J = 0; J < EI.n_elem; ++J) global_geometry->at(EI(J), EI(I)) += EG(J, I);
1650 if(EK.is_empty())
return;
1651 for(
auto I = EK.begin(); I != EK.end(); ++I) global_stiffness->at(EI(I.row()), EI(I.col())) += *I;
1656 #endif // FACTORY_HPP SpMat< T > & get_auxiliary_stiffness(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:95
Col< T > & get_current_temperature(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:165
void set_mass(const shared_ptr< MetaMat< T >> &)
Definition: Factory.hpp:925
const Col< T > & get_trial_settlement() const
Definition: Factory.hpp:975
void clear_eigen()
Definition: Factory.hpp:1586
void set_reference_load(const SpMat< T > &)
Definition: Factory.hpp:835
T & get_pre_time(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:167
void set_current_inertial_force(const Col< T > &)
Definition: Factory.hpp:893
void set_current_load(const Col< T > &)
Definition: Factory.hpp:885
Col< T > & get_incre_inertial_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:135
void reset_resistance()
Definition: Factory.hpp:1539
void initialize_resistance()
Definition: Factory.hpp:759
SolverType get_solver() const
Definition: Factory.hpp:632
const shared_ptr< MetaMat< T > > & get_damping() const
Definition: Factory.hpp:1059
void commit_pre_status()
Definition: Factory.hpp:1365
void commit_inertial_force()
Definition: Factory.hpp:1330
const T & get_trial_time() const
Definition: Factory.hpp:969
Col< T > & get_auxiliary_resistance(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:91
void set_size(unsigned)
Definition: Factory.hpp:602
Col< T > & get_current_acceleration(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:163
void set_trial_resistance(const Col< T > &)
Definition: Factory.hpp:845
void assemble_damping_force(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1619
void commit_pre_resistance()
Definition: Factory.hpp:1387
void initialize_geometry()
Definition: Factory.hpp:812
const Col< T > & get_incre_damping_force() const
Definition: Factory.hpp:1001
std::mutex & get_auxiliary_stiffness_mutex()
Definition: Factory.hpp:1071
const Col< T > & get_sushi() const
Definition: Factory.hpp:939
Col< T > & get_pre_displacement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:181
void update_current_acceleration(const Col< T > &)
Definition: Factory.hpp:1246
void clear_displacement()
Definition: Factory.hpp:1466
const Col< T > & get_pre_settlement() const
Definition: Factory.hpp:1041
void set_current_damping_force(const Col< T > &)
Definition: Factory.hpp:891
void set_trial_acceleration(const Col< T > &)
Definition: Factory.hpp:855
const Col< T > & get_incre_velocity() const
Definition: Factory.hpp:1007
const Col< T > & get_auxiliary_resistance() const
Definition: Factory.hpp:949
void set_pre_displacement(const Col< T > &)
Definition: Factory.hpp:917
void update_current_velocity(const Col< T > &)
Definition: Factory.hpp:1241
void set_stiffness(const shared_ptr< MetaMat< T >> &)
Definition: Factory.hpp:929
std::mutex & get_trial_settlement_mutex()
Definition: Factory.hpp:1077
std::mutex & get_damping_mutex()
Definition: Factory.hpp:1081
const T & get_pre_time() const
Definition: Factory.hpp:1035
Col< T > & get_trial_damping_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:111
Col< T > & get_trial_settlement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:107
void set_eigenvector(const Mat< T > &)
Definition: Factory.hpp:935
void set_current_acceleration(const Col< T > &)
Definition: Factory.hpp:899
void clear_inertial_force()
Definition: Factory.hpp:1459
void update_current_time(const T &)
Definition: Factory.hpp:1201
void update_incre_load(const Col< T > &)
Definition: Factory.hpp:1156
void commit_pre_velocity()
Definition: Factory.hpp:1395
void update_incre_inertial_force(const Col< T > &)
Definition: Factory.hpp:1176
Col< T > & get_pre_velocity(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:183
void set_tolerance(double)
Definition: Factory.hpp:622
const SpMat< T > & get_reference_load() const
Definition: Factory.hpp:943
const Col< T > & get_current_acceleration() const
Definition: Factory.hpp:1031
void clear_time()
Definition: Factory.hpp:1422
void assemble_damping(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1634
Col< T > & get_trial_inertial_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:113
bool is_nlgeom() const
Definition: Factory.hpp:620
void assemble_geometry(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1644
A Factory class.
Definition: DomainBase.h:44
void clear_auxiliary_resistance()
Definition: Factory.hpp:1494
unique_ptr< MetaMat< T > > get_matrix_container(const Factory< T > *const W)
Definition: FactoryHelper.hpp:61
void update_current_damping_force(const Col< T > &)
Definition: Factory.hpp:1226
const Col< T > & get_current_resistance() const
Definition: Factory.hpp:1021
void update_current_load_factor(const Col< T > &)
Definition: Factory.hpp:1206
void clear_damping_force()
Definition: Factory.hpp:1452
void initialize_damping()
Definition: Factory.hpp:808
void clear_stiffness()
Definition: Factory.hpp:1595
void update_trial_velocity(const Col< T > &)
Definition: Factory.hpp:1131
void reset()
Definition: Factory.hpp:1607
const SpMat< T > & get_auxiliary_stiffness() const
Definition: Factory.hpp:953
Col< T > & get_trial_resistance(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:109
T & get_incre_time(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:123
const Col< T > & get_incre_inertial_force() const
Definition: Factory.hpp:1003
void update_trial_settlement(const Col< T > &)
Definition: Factory.hpp:1106
Col< T1 > & get_pre_load_factor(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:169
const Col< T > & get_pre_load_factor() const
Definition: Factory.hpp:1037
void clear_settlement()
Definition: Factory.hpp:1438
const Col< T > & get_incre_settlement() const
Definition: Factory.hpp:997
const Col< T > & get_trial_load() const
Definition: Factory.hpp:973
void reset_settlement()
Definition: Factory.hpp:1533
void set_ninja(const Col< T > &)
Definition: Factory.hpp:823
const Col< T > & get_incre_load() const
Definition: Factory.hpp:995
void commit_pre_time()
Definition: Factory.hpp:1379
std::mutex & get_auxiliary_encoding_mutex()
Definition: Factory.hpp:1065
const Col< T > & get_pre_load() const
Definition: Factory.hpp:1039
const Col< T > & get_current_displacement() const
Definition: Factory.hpp:1027
void commit_settlement()
Definition: Factory.hpp:1312
void set_pre_settlement(const Col< T > &)
Definition: Factory.hpp:909
Mat< T > & get_eigenvector(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:191
const Col< T > & get_auxiliary_load() const
Definition: Factory.hpp:951
void commit_damping_force()
Definition: Factory.hpp:1324
void commit_pre_load_factor()
Definition: Factory.hpp:1381
void clear_temperature()
Definition: Factory.hpp:1487
const Col< T > & get_trial_inertial_force() const
Definition: Factory.hpp:981
void commit_load_factor()
Definition: Factory.hpp:1300
void set_pre_inertial_force(const Col< T > &)
Definition: Factory.hpp:915
void assemble_mass(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1629
T & get_current_time(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:145
void update_incre_velocity(const Col< T > &)
Definition: Factory.hpp:1186
const Col< T > & get_incre_resistance() const
Definition: Factory.hpp:999
SpCol< T1 > & get_current_constraint_resistance(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:99
Col< T > & get_incre_resistance(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:131
const Mat< T > & get_eigenvector() const
Definition: Factory.hpp:1089
void update_incre_temperature(const Col< T > &)
Definition: Factory.hpp:1196
void clear_auxiliary()
Definition: Factory.hpp:1599
const T & get_error() const
Definition: Factory.hpp:684
T & get_trial_time(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:101
void update_incre_load_factor(const Col< T > &)
Definition: Factory.hpp:1151
Col< T > & get_current_displacement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:159
void initialize_auxiliary_resistance()
Definition: Factory.hpp:801
void suanpan_info(const char *M,...)
Definition: print.cpp:47
void set_sushi(const Col< T > &)
Definition: Factory.hpp:825
const Col< T > & get_pre_temperature() const
Definition: Factory.hpp:1055
const Col< T > & get_trial_displacement() const
Definition: Factory.hpp:983
shared_ptr< MetaMat< T1 > > & get_mass(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:71
Col< T > & get_trial_velocity(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:117
const Col< T > & get_trial_acceleration() const
Definition: Factory.hpp:987
void set_reference_dof(const suanpan::set< uword > &)
Definition: Factory.hpp:678
Col< T1 > & get_incre_load_factor(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:125
void commit_resistance()
Definition: Factory.hpp:1318
void update_current_resistance(const Col< T > &)
Definition: Factory.hpp:1221
void update_current_settlement(const Col< T > &)
Definition: Factory.hpp:1216
void update_trial_displacement(const Col< T > &)
Definition: Factory.hpp:1126
T get_strain_energy()
Definition: Factory.hpp:959
void initialize_displacement()
Definition: Factory.hpp:777
void update_incre_damping_force(const Col< T > &)
Definition: Factory.hpp:1171
unsigned get_mpc() const
Definition: Factory.hpp:941
unique_ptr< MetaMat< T > > get_basic_container(const Factory< T > *const W)
Definition: FactoryHelper.hpp:26
Col< T > & get_eigenvalue(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:189
void set_storage_scheme(StorageScheme)
Definition: Factory.hpp:644
void set_pre_temperature(const Col< T > &)
Definition: Factory.hpp:923
double get_tolerance() const
Definition: Factory.hpp:624
Col< T > & get_incre_damping_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:133
const Col< T > & get_momentum()
Definition: Factory.hpp:967
void set_incre_resistance(const Col< T > &)
Definition: Factory.hpp:867
void commit_pre_temperature()
Definition: Factory.hpp:1399
Col< T1 > & get_trial_load_factor(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:103
void update_trial_time(const T &)
Definition: Factory.hpp:1091
void commit_temperature()
Definition: Factory.hpp:1354
void set_current_time(const T &)
Definition: Factory.hpp:881
const shared_ptr< MetaMat< T > > & get_stiffness() const
Definition: Factory.hpp:1061
void update_trial_load_factor(const Col< T > &)
Definition: Factory.hpp:1096
void reset_velocity()
Definition: Factory.hpp:1563
Col< T > & get_auxiliary_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:93
bool is_sparse() const
Definition: Factory.hpp:652
SpMat< T > & get_reference_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:85
void commit_velocity()
Definition: Factory.hpp:1342
void reset_time()
Definition: Factory.hpp:1516
Col< T > & get_current_settlement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:151
void update_trial_temperature(const Col< T > &)
Definition: Factory.hpp:1141
void reset_status()
Definition: Factory.hpp:1499
void set_nlgeom(bool)
Definition: Factory.hpp:614
suanpan::set< uword > & get_reference_dof(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:83
void initialize_eigen()
Definition: Factory.hpp:818
void commit_acceleration()
Definition: Factory.hpp:1348
void update_incre_displacement(const Col< T > &)
Definition: Factory.hpp:1181
void update_incre_settlement(const Col< T > &)
Definition: Factory.hpp:1161
Col< T > & get_pre_damping_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:177
T get_kinetic_energy()
Definition: Factory.hpp:961
const bool initialized
Definition: Factory.hpp:173
void commit_energy()
Definition: Factory.hpp:1256
Col< T > & get_pre_inertial_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:179
void set_current_velocity(const Col< T > &)
Definition: Factory.hpp:897
Col< T > & get_current_velocity(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:161
void commit_load()
Definition: Factory.hpp:1306
Col< T > & get_current_damping_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:155
void reset_load_factor()
Definition: Factory.hpp:1521
void set_damping(const shared_ptr< MetaMat< T >> &)
Definition: Factory.hpp:927
void set_refinement(unsigned)
Definition: Factory.hpp:634
void set_pre_damping_force(const Col< T > &)
Definition: Factory.hpp:913
void commit_pre_load()
Definition: Factory.hpp:1383
const Col< T > & get_trial_temperature() const
Definition: Factory.hpp:989
void assemble_resistance(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1614
const Col< T > & get_current_inertial_force() const
Definition: Factory.hpp:1025
const T & get_incre_time() const
Definition: Factory.hpp:991
Col< T > & get_trial_temperature(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:121
void set_pre_acceleration(const Col< T > &)
Definition: Factory.hpp:921
Col< T > & get_pre_temperature(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:187
const shared_ptr< MetaMat< T > > & get_geometry() const
Definition: Factory.hpp:1063
void initialize_inertial_force()
Definition: Factory.hpp:771
void commit_pre_damping_force()
Definition: Factory.hpp:1389
void update_current_temperature(const Col< T > &)
Definition: Factory.hpp:1251
void assemble_inertial_force(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1624
SolverType
Definition: Factory.hpp:57
const Col< T > & get_ninja() const
Definition: Factory.hpp:937
void set_trial_time(const T &)
Definition: Factory.hpp:837
uword get_entry() const
Definition: Factory.hpp:612
void set_incre_velocity(const Col< T > &)
Definition: Factory.hpp:875
void set_pre_load_factor(const Col< T > &)
Definition: Factory.hpp:905
void set_error(const T &)
Definition: Factory.hpp:682
void set_current_temperature(const Col< T > &)
Definition: Factory.hpp:901
void clear_velocity()
Definition: Factory.hpp:1473
const Col< T > & get_incre_temperature() const
Definition: Factory.hpp:1011
void commit_time()
Definition: Factory.hpp:1295
std::mutex & get_trial_constraint_resistance_mutex()
Definition: Factory.hpp:1073
void set_trial_damping_force(const Col< T > &)
Definition: Factory.hpp:847
void update_trial_load(const Col< T > &)
Definition: Factory.hpp:1101
const Col< T > & get_current_load() const
Definition: Factory.hpp:1017
Col< T > & get_pre_acceleration(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:185
void commit_displacement()
Definition: Factory.hpp:1336
const Col< T > & get_incre_displacement() const
Definition: Factory.hpp:1005
void set_pre_velocity(const Col< T > &)
Definition: Factory.hpp:919
void initialize_acceleration()
Definition: Factory.hpp:789
void clear_status()
Definition: Factory.hpp:1401
void set_mpc(unsigned)
Definition: Factory.hpp:827
std::mutex & get_auxiliary_load_mutex()
Definition: Factory.hpp:1069
const Col< T > & get_trial_velocity() const
Definition: Factory.hpp:985
void set_pre_time(const T &)
Definition: Factory.hpp:903
Col< T > & get_incre_velocity(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:139
void reset_acceleration()
Definition: Factory.hpp:1569
void set_entry(uword)
Definition: Factory.hpp:610
Col< T > & get_pre_resistance(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:175
void reset_damping_force()
Definition: Factory.hpp:1545
void set_current_resistance(const Col< T > &)
Definition: Factory.hpp:889
Col< T > & get_incre_temperature(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:143
void reset_load()
Definition: Factory.hpp:1527
T get_complementary_energy()
Definition: Factory.hpp:965
void update_incre_time(const T &)
Definition: Factory.hpp:1146
shared_ptr< MetaMat< T1 > > & get_stiffness(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:75
void update_reference_dof(const uvec &)
Definition: Factory.hpp:676
void set_incre_settlement(const Col< T > &)
Definition: Factory.hpp:865
const Col< T > & get_incre_acceleration() const
Definition: Factory.hpp:1009
void commit_pre_displacement()
Definition: Factory.hpp:1393
void reset(ExternalMaterialData *data, int *info)
Definition: ElasticExternal.cpp:74
T get_viscous_energy()
Definition: Factory.hpp:963
void reset_displacement()
Definition: Factory.hpp:1557
void set_incre_load_factor(const Col< T > &)
Definition: Factory.hpp:861
const Col< T > & get_trial_damping_force() const
Definition: Factory.hpp:979
Precision get_precision() const
Definition: Factory.hpp:628
std::mutex & get_trial_load_mutex()
Definition: Factory.hpp:1075
std::mutex & get_mass_mutex()
Definition: Factory.hpp:1079
Col< T1 > & get_current_load_factor(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:147
void set_bandwidth(unsigned, unsigned)
Definition: Factory.hpp:654
Col< T > & get_current_inertial_force(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:157
const Col< T > & get_pre_damping_force() const
Definition: Factory.hpp:1045
const Col< T > & get_eigenvalue() const
Definition: Factory.hpp:1087
unsigned get_reference_size() const
Definition: Factory.hpp:674
const Col< T > & get_trial_resistance() const
Definition: Factory.hpp:977
void initialize_temperature()
Definition: Factory.hpp:795
Col< T > & get_incre_acceleration(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:141
void reset_auxiliary_resistance()
Definition: Factory.hpp:1581
AnalysisType get_analysis_type() const
Definition: Factory.hpp:642
Col< T > & get_incre_settlement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:129
const Col< T > & get_auxiliary_lambda() const
Definition: Factory.hpp:947
Col< T1 > & get_auxiliary_lambda(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:89
void clear_energy()
Definition: Factory.hpp:1270
Col< T > & get_current_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:149
Col< T > & get_pre_settlement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:173
friend unique_ptr< MetaMat< T1 > > get_matrix_container(const Factory< T1 > *)
void update_current_inertial_force(const Col< T > &)
Definition: Factory.hpp:1231
void commit_status()
Definition: Factory.hpp:1278
Factory(unsigned=0, AnalysisType=AnalysisType::NONE, StorageScheme=StorageScheme::FULL)
Definition: Factory.hpp:597
const Col< T > & get_current_load_factor() const
Definition: Factory.hpp:1015
void initialize_settlement()
Definition: Factory.hpp:753
Col< T > & get_trial_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:105
void update_reference_size()
Definition: Factory.hpp:667
void update_incre_acceleration(const Col< T > &)
Definition: Factory.hpp:1191
void set_trial_load(const Col< T > &)
Definition: Factory.hpp:841
void set_precision(Precision)
Definition: Factory.hpp:626
void set_incre_displacement(const Col< T > &)
Definition: Factory.hpp:873
shared_ptr< MetaMat< T1 > > & get_geometry(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:77
void set_incre_time(const T &)
Definition: Factory.hpp:859
void update_trial_inertial_force(const Col< T > &)
Definition: Factory.hpp:1121
const T & get_current_time() const
Definition: Factory.hpp:1013
void clear_load_factor()
Definition: Factory.hpp:1424
const shared_ptr< MetaMat< T > > & get_mass() const
Definition: Factory.hpp:1057
Col< T > & get_trial_displacement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:115
std::mutex & get_stiffness_mutex()
Definition: Factory.hpp:1083
int initialize()
Definition: Factory.hpp:686
void set_incre_load(const Col< T > &)
Definition: Factory.hpp:863
void set_pre_resistance(const Col< T > &)
Definition: Factory.hpp:911
void set_incre_damping_force(const Col< T > &)
Definition: Factory.hpp:869
void set_eigenvalue(const Col< T > &)
Definition: Factory.hpp:933
void commit_pre_inertial_force()
Definition: Factory.hpp:1391
std::set< T > set
Definition: container.h:54
void set_incre_temperature(const Col< T > &)
Definition: Factory.hpp:879
void set_current_settlement(const Col< T > &)
Definition: Factory.hpp:887
void reset_temperature()
Definition: Factory.hpp:1575
const Col< T > & get_current_velocity() const
Definition: Factory.hpp:1029
const Col< T > & get_current_temperature() const
Definition: Factory.hpp:1033
void set_trial_settlement(const Col< T > &)
Definition: Factory.hpp:843
const Col< T > & get_pre_inertial_force() const
Definition: Factory.hpp:1047
Col< T > & get_ninja(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:79
const Col< T > & get_incre_load_factor() const
Definition: Factory.hpp:993
void initialize_load()
Definition: Factory.hpp:747
void update_trial_damping_force(const Col< T > &)
Definition: Factory.hpp:1116
void update_trial_resistance(const Col< T > &)
Definition: Factory.hpp:1111
void initialize_stiffness()
Definition: Factory.hpp:810
uvec & get_auxiliary_encoding(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:87
const Col< T > & get_current_settlement() const
Definition: Factory.hpp:1019
void clear_resistance()
Definition: Factory.hpp:1445
void set_incre_acceleration(const Col< T > &)
Definition: Factory.hpp:877
void reset_inertial_force()
Definition: Factory.hpp:1551
void set_current_load_factor(const Col< T > &)
Definition: Factory.hpp:883
void get_bandwidth(unsigned &, unsigned &) const
Definition: Factory.hpp:662
void set_trial_temperature(const Col< T > &)
Definition: Factory.hpp:857
Col< T > & get_current_resistance(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:153
Col< T > & get_incre_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:127
unsigned get_size() const
Definition: Factory.hpp:608
Col< T > & get_trial_acceleration(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:119
Col< T > & get_incre_displacement(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:137
void set_trial_velocity(const Col< T > &)
Definition: Factory.hpp:853
void clear_damping()
Definition: Factory.hpp:1593
const SpCol< T > & get_trial_constraint_resistance() const
Definition: Factory.hpp:955
void initialize_load_factor()
Definition: Factory.hpp:737
void clear_geometry()
Definition: Factory.hpp:1597
void commit_auxiliary_resistance()
Definition: Factory.hpp:1360
void update_incre_resistance(const Col< T > &)
Definition: Factory.hpp:1166
Col< T > & get_pre_load(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:171
void clear_mass()
Definition: Factory.hpp:1591
void clear_load()
Definition: Factory.hpp:1431
const Col< T > & get_current_damping_force() const
Definition: Factory.hpp:1023
StorageScheme
Definition: Factory.hpp:48
std::mutex & get_auxiliary_resistance_mutex()
Definition: Factory.hpp:1067
void initialize_damping_force()
Definition: Factory.hpp:765
void set_reference_size(unsigned)
Definition: Factory.hpp:669
const Col< T > & get_pre_acceleration() const
Definition: Factory.hpp:1053
void update_trial_acceleration(const Col< T > &)
Definition: Factory.hpp:1136
void set_incre_inertial_force(const Col< T > &)
Definition: Factory.hpp:871
shared_ptr< MetaMat< T1 > > & get_damping(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:73
Col< T > & get_sushi(const shared_ptr< Factory< T >> &W)
Definition: FactoryHelper.hpp:81
const Col< T > & get_pre_velocity() const
Definition: Factory.hpp:1051
std::mutex & get_geometry_mutex()
Definition: Factory.hpp:1085
void print() const
Definition: Factory.hpp:1654
const uvec & get_auxiliary_encoding() const
Definition: Factory.hpp:945
const Col< T > & get_trial_load_factor() const
Definition: Factory.hpp:971
AnalysisType
Definition: Factory.hpp:39
const suanpan::set< uword > & get_reference_dof() const
Definition: Factory.hpp:680
void update_current_load(const Col< T > &)
Definition: Factory.hpp:1211
void set_analysis_type(AnalysisType)
Definition: Factory.hpp:636
void set_pre_load(const Col< T > &)
Definition: Factory.hpp:907
shared_ptr< Solver > & get_solver(const shared_ptr< Domain > &D, const unsigned T)
Definition: DomainHelper.cpp:50
void assemble_stiffness(const Mat< T > &, const uvec &)
Definition: Factory.hpp:1639
void set_trial_displacement(const Col< T > &)
Definition: Factory.hpp:851
StorageScheme get_storage_scheme() const
Definition: Factory.hpp:650
void set_geometry(const shared_ptr< MetaMat< T >> &)
Definition: Factory.hpp:931
const Col< T > & get_pre_displacement() const
Definition: Factory.hpp:1049
void set_trial_inertial_force(const Col< T > &)
Definition: Factory.hpp:849
void set_trial_load_factor(const Col< T > &)
Definition: Factory.hpp:839
void set_current_displacement(const Col< T > &)
Definition: Factory.hpp:895
void update_current_displacement(const Col< T > &)
Definition: Factory.hpp:1236
void commit_pre_settlement()
Definition: Factory.hpp:1385
void clear_acceleration()
Definition: Factory.hpp:1480
void initialize_mass()
Definition: Factory.hpp:806
void commit_pre_acceleration()
Definition: Factory.hpp:1397
void set_solver(SolverType)
Definition: Factory.hpp:630
const Col< T > & get_pre_resistance() const
Definition: Factory.hpp:1043
void initialize_velocity()
Definition: Factory.hpp:783
SpCol< T1 > & get_trial_constraint_resistance(const shared_ptr< Factory< T1 >> &W)
Definition: FactoryHelper.hpp:97
const SpCol< T > & get_current_constraint_resistance() const
Definition: Factory.hpp:957