MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / print_internal

Function print_internal

SRC/domain/domain/DomainModalProperties.cpp:875–1012  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

873
874 template<class TStream>
875 void print_internal(TStream& out, const DomainModalProperties& dmp)
876 {
877 // utils
878 auto print_vec = [&out](const Vector& x, const char* fchar = DMP_OUT_BLANK) {
879 double tol = getTolerance(x);
880 out << fchar;
881 for (int i = 0; i < x.Size(); ++i)
882 out << DMP_OUT_FLOAT(cleanFloat(x(i), tol));
883 out << "\n";
884 };
885 auto print_mat = [&out](const Matrix& x, double scale = 1.0, const char *fchar = DMP_OUT_BLANK) {
886 double tol = getTolerance(x);
887 for (int j = 0; j < x.noRows(); ++j) {
888 out << fchar << DMP_OUT_GEN(j + 1);
889 for (int i = 0; i < x.noCols(); ++i)
890 out << DMP_OUT_FLOAT(scale * cleanFloat(x(j, i), tol));
891 out << "\n";
892 }
893 };
894 auto print_svec = [&out](const std::vector<std::string>& x, const char* fchar = DMP_OUT_BLANK) {
895 out << fchar;
896 for (int i = 0; i < x.size(); ++i)
897 out << DMP_OUT_GEN(x[i]);
898 out << "\n";
899 };
900
901 // labels
902 static std::vector<std::string> lab_freq = { "MODE", "LAMBDA", "OMEGA", "FREQUENCY", "PERIOD" };
903 static std::vector<std::string> lab_mass_1d = { "MX" };
904 static std::vector<std::string> lab_mass_2d = { "MX", "MY", "RMZ" };
905 static std::vector<std::string> lab_mass_3d = { "MX", "MY", "MZ", "RMX", "RMY", "RMZ" };
906 static std::vector<std::string> lab_efmass_1d = { "MODE", "MX" };
907 static std::vector<std::string> lab_efmass_2d = { "MODE", "MX", "MY", "RMZ" };
908 static std::vector<std::string> lab_efmass_3d = { "MODE", "MX", "MY", "MZ", "RMX", "RMY", "RMZ" };
909 static std::vector<std::string> lab_pos_1d = { "X" };
910 static std::vector<std::string> lab_pos_2d = { "X", "Y" };
911 static std::vector<std::string> lab_pos_3d = { "X", "Y", "Z" };
912 static std::vector<std::string> lab_sep_1 = { DMP_OUT_HLINE };
913 static std::vector<std::string> lab_sep_2 = { DMP_OUT_HLINE, DMP_OUT_HLINE };
914 static std::vector<std::string> lab_sep_3 = { DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE };
915 static std::vector<std::string> lab_sep_4 = { DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE };
916 static std::vector<std::string> lab_sep_5 = { DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE };
917 static std::vector<std::string> lab_sep_6 = { DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE };
918 static std::vector<std::string> lab_sep_7 = { DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE, DMP_OUT_HLINE };
919
920 // header
921 out << DMP_OUT_COMMENT << " MODAL ANALYSIS REPORT\n\n";
922
923 // problem size
924 int ndm = dmp.centerOfMass().Size();
925 out << DMP_OUT_RECORD << " 1. DOMAIN SIZE:\n"
926 << DMP_OUT_COMMENT << " This is the size of the problem: 1 for 1D problems, 2 for 2D problems, 3 for 3D problems.\n"
927 << ndm << "\n\n\n";
928
929 // eigenvalues and derived quantities
930 out << DMP_OUT_RECORD << " 2. EIGENVALUE ANALYSIS:\n";
931 print_svec(lab_freq, DMP_OUT_COMMENT);
932 print_svec(lab_sep_5, DMP_OUT_COMMENT);

Callers 1

printMethod · 0.70

Calls 6

getToleranceFunction · 0.70
cleanFloatFunction · 0.70
SizeMethod · 0.45
noRowsMethod · 0.45
noColsMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected