You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(27) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(15) |
Mar
(33) |
Apr
(10) |
May
(46) |
Jun
(11) |
Jul
(21) |
Aug
(15) |
Sep
(13) |
Oct
(23) |
Nov
(1) |
Dec
(8) |
2005 |
Jan
(27) |
Feb
(57) |
Mar
(86) |
Apr
(23) |
May
(37) |
Jun
(34) |
Jul
(24) |
Aug
(17) |
Sep
(50) |
Oct
(24) |
Nov
(10) |
Dec
(60) |
2006 |
Jan
(47) |
Feb
(46) |
Mar
(127) |
Apr
(19) |
May
(26) |
Jun
(62) |
Jul
(47) |
Aug
(51) |
Sep
(61) |
Oct
(42) |
Nov
(50) |
Dec
(33) |
2007 |
Jan
(60) |
Feb
(55) |
Mar
(77) |
Apr
(102) |
May
(82) |
Jun
(102) |
Jul
(169) |
Aug
(117) |
Sep
(80) |
Oct
(37) |
Nov
(51) |
Dec
(43) |
2008 |
Jan
(71) |
Feb
(94) |
Mar
(98) |
Apr
(125) |
May
(54) |
Jun
(119) |
Jul
(60) |
Aug
(111) |
Sep
(118) |
Oct
(125) |
Nov
(119) |
Dec
(94) |
2009 |
Jan
(109) |
Feb
(38) |
Mar
(93) |
Apr
(88) |
May
(29) |
Jun
(57) |
Jul
(53) |
Aug
(48) |
Sep
(68) |
Oct
(151) |
Nov
(23) |
Dec
(35) |
2010 |
Jan
(84) |
Feb
(60) |
Mar
(184) |
Apr
(112) |
May
(60) |
Jun
(90) |
Jul
(23) |
Aug
(70) |
Sep
(119) |
Oct
(27) |
Nov
(47) |
Dec
(54) |
2011 |
Jan
(22) |
Feb
(19) |
Mar
(92) |
Apr
(93) |
May
(35) |
Jun
(91) |
Jul
(32) |
Aug
(61) |
Sep
(7) |
Oct
(69) |
Nov
(81) |
Dec
(23) |
2012 |
Jan
(64) |
Feb
(95) |
Mar
(35) |
Apr
(36) |
May
(63) |
Jun
(98) |
Jul
(70) |
Aug
(171) |
Sep
(149) |
Oct
(64) |
Nov
(67) |
Dec
(126) |
2013 |
Jan
(108) |
Feb
(104) |
Mar
(171) |
Apr
(133) |
May
(108) |
Jun
(100) |
Jul
(93) |
Aug
(126) |
Sep
(74) |
Oct
(59) |
Nov
(145) |
Dec
(93) |
2014 |
Jan
(38) |
Feb
(45) |
Mar
(26) |
Apr
(41) |
May
(125) |
Jun
(70) |
Jul
(61) |
Aug
(66) |
Sep
(60) |
Oct
(110) |
Nov
(27) |
Dec
(30) |
2015 |
Jan
(43) |
Feb
(67) |
Mar
(71) |
Apr
(92) |
May
(39) |
Jun
(15) |
Jul
(46) |
Aug
(63) |
Sep
(84) |
Oct
(82) |
Nov
(69) |
Dec
(45) |
2016 |
Jan
(92) |
Feb
(91) |
Mar
(148) |
Apr
(43) |
May
(58) |
Jun
(117) |
Jul
(92) |
Aug
(140) |
Sep
(49) |
Oct
(33) |
Nov
(85) |
Dec
(40) |
2017 |
Jan
(41) |
Feb
(36) |
Mar
(49) |
Apr
(41) |
May
(73) |
Jun
(51) |
Jul
(12) |
Aug
(69) |
Sep
(26) |
Oct
(43) |
Nov
(75) |
Dec
(23) |
2018 |
Jan
(86) |
Feb
(36) |
Mar
(50) |
Apr
(28) |
May
(53) |
Jun
(65) |
Jul
(26) |
Aug
(43) |
Sep
(32) |
Oct
(28) |
Nov
(52) |
Dec
(17) |
2019 |
Jan
(39) |
Feb
(26) |
Mar
(71) |
Apr
(30) |
May
(73) |
Jun
(18) |
Jul
(5) |
Aug
(10) |
Sep
(8) |
Oct
(24) |
Nov
(12) |
Dec
(34) |
2020 |
Jan
(17) |
Feb
(10) |
Mar
(6) |
Apr
(4) |
May
(15) |
Jun
(3) |
Jul
(8) |
Aug
(15) |
Sep
(6) |
Oct
(3) |
Nov
|
Dec
(4) |
2021 |
Jan
(4) |
Feb
(4) |
Mar
(21) |
Apr
(14) |
May
(13) |
Jun
(18) |
Jul
(1) |
Aug
(39) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
(2) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
(3) |
Nov
|
Dec
|
2023 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
From: edgar <edg...@cr...> - 2021-08-18 19:18:53
|
No idea why it's not published. The development is also here: https://www.notabug.org/broncodev/heron/src/not-working/py2libmesh (which is a Git repository for anyone to read). Thank you! On 2021-08-18 18:39, John Peterson wrote: > Hi Edgar, > > Yeah I can't see your post, not sure what the issue is... possibly they > did > not like the link you posted or something? > > -- > John > > > On Wed, Aug 18, 2021 at 12:04 PM edgar <edg...@cr...> wrote: > >> Hello John and libmesh-users, >> >> The discussion is here, but it seems unpublished, for some reason: >> https://github.com/libMesh/libmesh/discussions/2987 >> >> Anyway, I have the attachment here (will be there for 1 week): >> >> https://anonpaste.org/?157252de59d151b1#8CHB81NdEuwjrcnG5AwTLyEnGPeg6z2cx5ZcpuSdL5N5 >> >> Thank you. >> >> On 2021-08-17 19:28, John Peterson wrote: >> > Hi Edgar, >> > >> > This list does not accept attachments unfortunately, so you'll have to >> > upload it elsewhere and provide a link. >> > >> > Note that we also recently enabled the Discussions feature over on >> > GitHub: >> > https://github.com/libMesh/libmesh/discussions >> > If you start a new topic there, (I think) you can attach files and get >> > help/responses from people who aren't necessarily on the mailing list. >> |
From: John P. <jwp...@gm...> - 2021-08-18 18:39:54
|
Hi Edgar, Yeah I can't see your post, not sure what the issue is... possibly they did not like the link you posted or something? -- John On Wed, Aug 18, 2021 at 12:04 PM edgar <edg...@cr...> wrote: > Hello John and libmesh-users, > > The discussion is here, but it seems unpublished, for some reason: > https://github.com/libMesh/libmesh/discussions/2987 > > Anyway, I have the attachment here (will be there for 1 week): > > https://anonpaste.org/?157252de59d151b1#8CHB81NdEuwjrcnG5AwTLyEnGPeg6z2cx5ZcpuSdL5N5 > > Thank you. > > On 2021-08-17 19:28, John Peterson wrote: > > Hi Edgar, > > > > This list does not accept attachments unfortunately, so you'll have to > > upload it elsewhere and provide a link. > > > > Note that we also recently enabled the Discussions feature over on > > GitHub: > > https://github.com/libMesh/libmesh/discussions > > If you start a new topic there, (I think) you can attach files and get > > help/responses from people who aren't necessarily on the mailing list. > |
From: edgar <edg...@cr...> - 2021-08-18 17:04:39
|
Hello John and libmesh-users, The discussion is here, but it seems unpublished, for some reason: https://github.com/libMesh/libmesh/discussions/2987 Anyway, I have the attachment here (will be there for 1 week): https://anonpaste.org/?157252de59d151b1#8CHB81NdEuwjrcnG5AwTLyEnGPeg6z2cx5ZcpuSdL5N5 Thank you. On 2021-08-17 19:28, John Peterson wrote: > Hi Edgar, > > This list does not accept attachments unfortunately, so you'll have to > upload it elsewhere and provide a link. > > Note that we also recently enabled the Discussions feature over on > GitHub: > https://github.com/libMesh/libmesh/discussions > If you start a new topic there, (I think) you can attach files and get > help/responses from people who aren't necessarily on the mailing list. |
From: John P. <jwp...@gm...> - 2021-08-17 19:29:17
|
Hi Edgar, This list does not accept attachments unfortunately, so you'll have to upload it elsewhere and provide a link. Note that we also recently enabled the Discussions feature over on GitHub: https://github.com/libMesh/libmesh/discussions If you start a new topic there, (I think) you can attach files and get help/responses from people who aren't necessarily on the mailing list. -- John |
From: edgar <edg...@cr...> - 2021-08-17 19:18:54
|
Hello, I created a little program to go from a 1D, 2D or 3D problem with a GetPot file to solving it with libMesh. Sounds good... only it doesn't work :P ! It is mostly based on introducton/ex3 and systems_of_equations/ex{3,4,6}. As a heads-up, there is a function to set the boundary conditions (getpot_bc_2_linear_implicit_eq_sys) which calls a little macro depending on the number of variables (ADD_GETPOT_BC). I hope that it is not too much to ask if someone could tell me what I am missing. When checking the results with Paraview, the only that I see is the mesh, but all values are 0. I guess that the I need to fix something related to boundary conditions. By the way, what are a_*, i_* and r_* supposed to be in the exodus file? If this code results to be useful, I would be more than glad to share it as part of the examples. Thank you! :D |
From: edgar <edg...@cr...> - 2021-08-17 19:02:46
|
I'm sorry that I missed the attachment. Here it is. On 2021-08-17 19:00, edgar wrote: > Hello, > > I created a little program to go from a 1D, 2D or 3D problem with a > GetPot file to solving it with libMesh. Sounds good... only it doesn't > work :P ! It is mostly based on introducton/ex3 and > systems_of_equations/ex{3,4,6}. > > As a heads-up, there is a function to set the boundary conditions > (getpot_bc_2_linear_implicit_eq_sys) which calls a little macro > depending on the number of variables (ADD_GETPOT_BC). > > I hope that it is not too much to ask if someone could tell me what I > am missing. When checking the results with Paraview, the only that I > see is the mesh, but all values are 0. I guess that the I need to fix > something related to boundary conditions. > > By the way, what are a_*, i_* and r_* supposed to be in the exodus > file? > > If this code results to be useful, I would be more than glad to share > it as part of the examples. > > Thank you! :D |
From: Charles P. <cha...@gm...> - 2021-08-16 19:56:02
|
Hi John, I did try concatenating the files but that did not seem to work. I can almost get what I need by opening up the POS file in GMSH and re-exporting. My ultimate goal is to have a single file that contains both mesh information and "NodeData" information per GMSH's most recent file version. I think I can manage by writing a simple file parser. If you all end up supporting a more recent GMSH version in the future, I am happy to test it out with my workflow. -- Charles On Mon, Aug 16, 2021 at 7:44 AM John Peterson <jwp...@gm...> wrote: > > > On Sat, Aug 14, 2021 at 12:29 PM Charles Puelz <cha...@gm...> > wrote: > >> Hello, >> >> I am trying to write both a mesh and data corresponding to a libMesh >> system >> to a single MSH file. It looks like this can be done with an MSH file >> version > 4. >> >> At this point I can separately write out a mesh in an MSH file using the >> "write" function and system data to a POS file using >> 'write_equation_systems" or "write_nodal_data." > > >> Is it possible to write both the mesh and system data to a single MSH file >> with version > 4? >> > > This might be something that Gmsh supports, but I don't think we support > it in libmesh currently. > > > Otherwise, does anyone have an idea for combining legacy POS and MSH files >> for system data and a mesh in another way? >> > > I guess it would depend on the file format definitions for both file > types, which I'm not very familiar with. They are both ASCII files, so have > you tried to simply "cat" them together? Also, what is your ultimate goal > here, just to have a single file for organization purposes? > > -- > John > -- Charles Puelz Baylor College of Medicine cpuelz.github.io |
From: John P. <jwp...@gm...> - 2021-08-16 15:14:51
|
I didn't read the code in detail, but is the fix as simple as #include "libmesh/sparse_matrix.h" ? -- John On Mon, Aug 16, 2021 at 10:06 AM edgar <edg...@cr...> wrote: > Hello, > > I'm sorry to bother you. I'm getting an error, and I dont' know how to > solve it. I am trying to restructure some examples from the > /systems_of_equations/ directory into a single program. > > I am compiling in debug mode with mpicxx. The error message reads: > =invalid use of incomplete type 'class > libMesh::SparseMatrix<std::complex<double> >'=. The message is next, and > the offending code is below (I think attachments are scrubbed-off). > Thank you very much for your time and patience. If it lacks clarity or > you need anything else, just let me know. > > #+caption: The compiler tells me this > #+begin_example > src/main.cpp: In function 'void asm_subfun(KE&, KEV&, FE&, FEV&, > libMesh::EquationSystems&, const string&)': > src/main.cpp:193:7: warning: invalid use of incomplete type 'class > libMesh::SparseMatrix<std::complex<double> >' > 193 | matrix.add_matrix (Ke, dof_indices); > | ^~~~~~ > In file included from > src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, > from src/main.cpp:1: > /usr/include/libmesh/dof_map.h:74:29: note: declaration of 'class > libMesh::SparseMatrix<std::complex<double> >' > 74 | template <typename T> class SparseMatrix; > | ^~~~~~~~~~~~ > src/main.cpp:194:17: warning: invalid use of incomplete type 'class > libMesh::NumericVector<std::complex<double> >' > 194 | system.rhs->add_vector (Fe, dof_indices); > | ^~ > In file included from /usr/include/libmesh/dof_object.h:25, > from /usr/include/libmesh/mesh_base.h:24, > from /usr/include/libmesh/elem_range.h:24, > from /usr/include/libmesh/dof_map.h:30, > from > src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, > from src/main.cpp:1: > /usr/include/libmesh/int_range.h:34:29: note: declaration of 'class > libMesh::NumericVector<std::complex<double> >' > 34 | template <typename T> class NumericVector; > | ^~~~~~~~~~~~~ > src/main.cpp: In instantiation of 'void asm_subfun(KE&, KEV&, FE&, > FEV&, libMesh::EquationSystems&, const string&) [with KE = > libMesh::DenseMatrix<std::complex<double> >; KEV = > libMesh::DenseSubMatrix<std::complex<double> > [1][1]; FE = > libMesh::DenseVector<std::complex<double> >; FEV = > libMesh::DenseSubVector<std::complex<double> > [1]; std::string = > std::__cxx11::basic_string<char>]': > src/main.cpp:351:15: required from here > src/main.cpp:193:14: error: invalid use of incomplete type 'class > libMesh::SparseMatrix<std::complex<double> >' > 193 | matrix.add_matrix (Ke, dof_indices); > | ~~~~~~~^~~~~~~~~~ > In file included from > src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, > from src/main.cpp:1: > /usr/include/libmesh/dof_map.h:74:29: note: declaration of 'class > libMesh::SparseMatrix<std::complex<double> >' > 74 | template <typename T> class SparseMatrix; > | ^~~~~~~~~~~~ > src/main.cpp:194:19: error: invalid use of incomplete type 'class > libMesh::NumericVector<std::complex<double> >' > 194 | system.rhs->add_vector (Fe, dof_indices); > | ~~~~~~~^~~~~~~~~~ > #+end_example > > #+name: asm_subfunc > #+caption: This function is called by =assembly_elasticity= > #+begin_src c++ > template <typename KE, typename KEV, typename FE, typename FEV> > void > asm_subfun (KE &Ke, > KEV &Ke_var, > FE &Fe, > FEV &Fe_var, > libMesh::EquationSystems &es, > const std::string &libmesh_dbg_var (system_name)) { > > libmesh_assert_equal_to (system_name, > "LinearIsotropicSystem"); > libMesh::LinearImplicitSystem &system = > es.get_system<libMesh::LinearImplicitSystem> ( > "LinearIsotropicSystem"); > > const libMesh::MeshBase &mesh = es.get_mesh (); > > const unsigned int mesh_dim = mesh.mesh_dimension (); > > const unsigned int u_var = system.variable_number ("u"); > > const libMesh::DofMap &dof_map = system.get_dof_map (); > libMesh::FEType fe_type = dof_map.variable_type (u_var); > std::unique_ptr<libMesh::FEBase> fe ( > libMesh::FEBase::build (mesh_dim, fe_type)); > libMesh::QGauss qrule ( > mesh_dim, fe_type.default_quadrature_order ()); > fe->attach_quadrature_rule (&qrule); > > std::unique_ptr<libMesh::FEBase> fe_face ( > libMesh::FEBase::build (mesh_dim, fe_type)); > libMesh::QGauss qface ( > mesh_dim - 1, fe_type.default_quadrature_order ()); > fe_face->attach_quadrature_rule (&qface); > > const std::vector<libMesh::Real> &JxW = fe->get_JxW (); > const std::vector<std::vector<libMesh::Real>> &phi = > fe->get_phi (); > const std::vector<std::vector<libMesh::RealGradient>> > &dphi = fe->get_dphi (); > > std::vector<libMesh::dof_id_type> dof_indices; > std::vector<std::vector<libMesh::dof_id_type>> dof_indices_var ( > 3); > > libMesh::SparseMatrix<libMesh::Number> &matrix = > system.get_system_matrix (); > > auto lame_lambda = > es.parameters.get<libMesh::Real>("lame_lambda"); > auto lame_mu = es.parameters.get<libMesh::Real>("lame_mu"); > > for (const auto &elem : > mesh.active_local_element_ptr_range ()) { > dof_map.dof_indices (elem, dof_indices); > for (unsigned int var = 0; var < mesh_dim; var++) > dof_map.dof_indices ( > elem, dof_indices_var[var], var); > > const unsigned int n_dofs = dof_indices.size (); > const unsigned int n_var_dofs = > dof_indices_var[0].size (); > > fe->reinit (elem); > > Ke.resize (n_dofs, n_dofs); > Fe.resize (n_dofs); > > for (unsigned int var_i = 0; var_i < 3; var_i++) > for (unsigned int var_j = 0; var_j < 3; var_j++) > Ke_var[var_i][var_j].reposition ( > var_i * n_var_dofs, > var_j * n_var_dofs, > n_var_dofs, > n_var_dofs); > for (unsigned int var = 0; var < 3; var++) > Fe_var[var].reposition (var * n_var_dofs, n_var_dofs); > > for (unsigned int qp = 0; qp < qrule.n_points (); qp++) { > for (unsigned int dof_i = 0; dof_i < n_var_dofs; dof_i++) > for (unsigned int dof_j = 0; dof_j < n_var_dofs; > dof_j++) > for (unsigned int i = 0; i < 3; i++) > for (unsigned int j = 0; j < 3; j++) > for (unsigned int k = 0; k < 3; k++) > for (unsigned int l = 0; l < 3; l++) > Ke_var[i][k](dof_i, dof_j) += > JxW[qp] * > linear_isotropic_elasticity_comp > (i, j, k, l) * > dphi[dof_j][qp](l) * > dphi[dof_i][qp](j); > > libMesh::VectorValue<libMesh::Number> f_vec (0., 0., -1.); > for (unsigned int dof_i = 0; dof_i < n_var_dofs; > dof_i++) > for (unsigned int i = 0; i < 3; i++) > Fe_var[i](dof_i) += JxW[qp] * (f_vec (i) * > phi[dof_i][qp]); > } // end of quadrature point loop > > dof_map.constrain_element_matrix_and_vector (Ke, Fe, > dof_indices); > > matrix.add_matrix (Ke, dof_indices); > system.rhs->add_vector (Fe, dof_indices); > } // end of element loop > } > #+end_src > > #+name: assemble_elasticity > #+caption: This is a prototype function which is not called by anything > yet > #+begin_src C++ > void > assemble_elasticity ( > libMesh::EquationSystems & es, > const std::string &libmesh_dbg_var (system_name)) { > > const libMesh::MeshBase &mesh = es.get_mesh (); > const unsigned int mesh_dim = mesh.mesh_dimension (); > > libMesh::DenseMatrix<libMesh::Number> Ke; > libMesh::DenseVector<libMesh::Number> Fe; > > if (mesh_dim == 1) { > libMesh::DenseSubMatrix<libMesh::Number> Ke_var[1][1] = { > { libMesh::DenseSubMatrix<libMesh::Number> (Ke) }}; > libMesh::DenseSubVector<libMesh::Number> Fe_var[1] = { > libMesh::DenseSubVector<libMesh::Number> (Fe)}; > asm_subfun(Ke, Ke_var, Fe, Fe_var, es, system_name); > } > } > #+end_src > > #+name: libmesh_headers > #+caption: These are the headers that I use which come from libMesh > (there are more, for unrelated local functions) > #+begin_src C++ > #include "libmesh/boundary_info.h" > #include "libmesh/const_function.h" > #include "libmesh/dirichlet_boundaries.h" > #include "libmesh/quadrature_gauss.h" > #include "libmesh/dof_map.h" > #include "libmesh/enum_fe_family.h" > #include "libmesh/enum_order.h" > #include "libmesh/enum_solver_package.h" > #include "libmesh/equation_systems.h" > #include "libmesh/getpot.h" > #include "libmesh/libmesh.h" > #include "libmesh/libmesh_common.h" > #include "libmesh/linear_implicit_system.h" > #include "libmesh/mesh.h" > #include <iostream> > #+end_src > > > > |
From: edgar <edg...@cr...> - 2021-08-16 15:06:00
|
Hello, I'm sorry to bother you. I'm getting an error, and I dont' know how to solve it. I am trying to restructure some examples from the /systems_of_equations/ directory into a single program. I am compiling in debug mode with mpicxx. The error message reads: =invalid use of incomplete type 'class libMesh::SparseMatrix<std::complex<double> >'=. The message is next, and the offending code is below (I think attachments are scrubbed-off). Thank you very much for your time and patience. If it lacks clarity or you need anything else, just let me know. #+caption: The compiler tells me this #+begin_example src/main.cpp: In function 'void asm_subfun(KE&, KEV&, FE&, FEV&, libMesh::EquationSystems&, const string&)': src/main.cpp:193:7: warning: invalid use of incomplete type 'class libMesh::SparseMatrix<std::complex<double> >' 193 | matrix.add_matrix (Ke, dof_indices); | ^~~~~~ In file included from src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, from src/main.cpp:1: /usr/include/libmesh/dof_map.h:74:29: note: declaration of 'class libMesh::SparseMatrix<std::complex<double> >' 74 | template <typename T> class SparseMatrix; | ^~~~~~~~~~~~ src/main.cpp:194:17: warning: invalid use of incomplete type 'class libMesh::NumericVector<std::complex<double> >' 194 | system.rhs->add_vector (Fe, dof_indices); | ^~ In file included from /usr/include/libmesh/dof_object.h:25, from /usr/include/libmesh/mesh_base.h:24, from /usr/include/libmesh/elem_range.h:24, from /usr/include/libmesh/dof_map.h:30, from src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, from src/main.cpp:1: /usr/include/libmesh/int_range.h:34:29: note: declaration of 'class libMesh::NumericVector<std::complex<double> >' 34 | template <typename T> class NumericVector; | ^~~~~~~~~~~~~ src/main.cpp: In instantiation of 'void asm_subfun(KE&, KEV&, FE&, FEV&, libMesh::EquationSystems&, const string&) [with KE = libMesh::DenseMatrix<std::complex<double> >; KEV = libMesh::DenseSubMatrix<std::complex<double> > [1][1]; FE = libMesh::DenseVector<std::complex<double> >; FEV = libMesh::DenseSubVector<std::complex<double> > [1]; std::string = std::__cxx11::basic_string<char>]': src/main.cpp:351:15: required from here src/main.cpp:193:14: error: invalid use of incomplete type 'class libMesh::SparseMatrix<std::complex<double> >' 193 | matrix.add_matrix (Ke, dof_indices); | ~~~~~~~^~~~~~~~~~ In file included from src/../include/getpot_bc_2_linear_implicit_eq_sys.h:5, from src/main.cpp:1: /usr/include/libmesh/dof_map.h:74:29: note: declaration of 'class libMesh::SparseMatrix<std::complex<double> >' 74 | template <typename T> class SparseMatrix; | ^~~~~~~~~~~~ src/main.cpp:194:19: error: invalid use of incomplete type 'class libMesh::NumericVector<std::complex<double> >' 194 | system.rhs->add_vector (Fe, dof_indices); | ~~~~~~~^~~~~~~~~~ #+end_example #+name: asm_subfunc #+caption: This function is called by =assembly_elasticity= #+begin_src c++ template <typename KE, typename KEV, typename FE, typename FEV> void asm_subfun (KE &Ke, KEV &Ke_var, FE &Fe, FEV &Fe_var, libMesh::EquationSystems &es, const std::string &libmesh_dbg_var (system_name)) { libmesh_assert_equal_to (system_name, "LinearIsotropicSystem"); libMesh::LinearImplicitSystem &system = es.get_system<libMesh::LinearImplicitSystem> ( "LinearIsotropicSystem"); const libMesh::MeshBase &mesh = es.get_mesh (); const unsigned int mesh_dim = mesh.mesh_dimension (); const unsigned int u_var = system.variable_number ("u"); const libMesh::DofMap &dof_map = system.get_dof_map (); libMesh::FEType fe_type = dof_map.variable_type (u_var); std::unique_ptr<libMesh::FEBase> fe ( libMesh::FEBase::build (mesh_dim, fe_type)); libMesh::QGauss qrule ( mesh_dim, fe_type.default_quadrature_order ()); fe->attach_quadrature_rule (&qrule); std::unique_ptr<libMesh::FEBase> fe_face ( libMesh::FEBase::build (mesh_dim, fe_type)); libMesh::QGauss qface ( mesh_dim - 1, fe_type.default_quadrature_order ()); fe_face->attach_quadrature_rule (&qface); const std::vector<libMesh::Real> &JxW = fe->get_JxW (); const std::vector<std::vector<libMesh::Real>> &phi = fe->get_phi (); const std::vector<std::vector<libMesh::RealGradient>> &dphi = fe->get_dphi (); std::vector<libMesh::dof_id_type> dof_indices; std::vector<std::vector<libMesh::dof_id_type>> dof_indices_var ( 3); libMesh::SparseMatrix<libMesh::Number> &matrix = system.get_system_matrix (); auto lame_lambda = es.parameters.get<libMesh::Real>("lame_lambda"); auto lame_mu = es.parameters.get<libMesh::Real>("lame_mu"); for (const auto &elem : mesh.active_local_element_ptr_range ()) { dof_map.dof_indices (elem, dof_indices); for (unsigned int var = 0; var < mesh_dim; var++) dof_map.dof_indices ( elem, dof_indices_var[var], var); const unsigned int n_dofs = dof_indices.size (); const unsigned int n_var_dofs = dof_indices_var[0].size (); fe->reinit (elem); Ke.resize (n_dofs, n_dofs); Fe.resize (n_dofs); for (unsigned int var_i = 0; var_i < 3; var_i++) for (unsigned int var_j = 0; var_j < 3; var_j++) Ke_var[var_i][var_j].reposition ( var_i * n_var_dofs, var_j * n_var_dofs, n_var_dofs, n_var_dofs); for (unsigned int var = 0; var < 3; var++) Fe_var[var].reposition (var * n_var_dofs, n_var_dofs); for (unsigned int qp = 0; qp < qrule.n_points (); qp++) { for (unsigned int dof_i = 0; dof_i < n_var_dofs; dof_i++) for (unsigned int dof_j = 0; dof_j < n_var_dofs; dof_j++) for (unsigned int i = 0; i < 3; i++) for (unsigned int j = 0; j < 3; j++) for (unsigned int k = 0; k < 3; k++) for (unsigned int l = 0; l < 3; l++) Ke_var[i][k](dof_i, dof_j) += JxW[qp] * linear_isotropic_elasticity_comp (i, j, k, l) * dphi[dof_j][qp](l) * dphi[dof_i][qp](j); libMesh::VectorValue<libMesh::Number> f_vec (0., 0., -1.); for (unsigned int dof_i = 0; dof_i < n_var_dofs; dof_i++) for (unsigned int i = 0; i < 3; i++) Fe_var[i](dof_i) += JxW[qp] * (f_vec (i) * phi[dof_i][qp]); } // end of quadrature point loop dof_map.constrain_element_matrix_and_vector (Ke, Fe, dof_indices); matrix.add_matrix (Ke, dof_indices); system.rhs->add_vector (Fe, dof_indices); } // end of element loop } #+end_src #+name: assemble_elasticity #+caption: This is a prototype function which is not called by anything yet #+begin_src C++ void assemble_elasticity ( libMesh::EquationSystems & es, const std::string &libmesh_dbg_var (system_name)) { const libMesh::MeshBase &mesh = es.get_mesh (); const unsigned int mesh_dim = mesh.mesh_dimension (); libMesh::DenseMatrix<libMesh::Number> Ke; libMesh::DenseVector<libMesh::Number> Fe; if (mesh_dim == 1) { libMesh::DenseSubMatrix<libMesh::Number> Ke_var[1][1] = { { libMesh::DenseSubMatrix<libMesh::Number> (Ke) }}; libMesh::DenseSubVector<libMesh::Number> Fe_var[1] = { libMesh::DenseSubVector<libMesh::Number> (Fe)}; asm_subfun(Ke, Ke_var, Fe, Fe_var, es, system_name); } } #+end_src #+name: libmesh_headers #+caption: These are the headers that I use which come from libMesh (there are more, for unrelated local functions) #+begin_src C++ #include "libmesh/boundary_info.h" #include "libmesh/const_function.h" #include "libmesh/dirichlet_boundaries.h" #include "libmesh/quadrature_gauss.h" #include "libmesh/dof_map.h" #include "libmesh/enum_fe_family.h" #include "libmesh/enum_order.h" #include "libmesh/enum_solver_package.h" #include "libmesh/equation_systems.h" #include "libmesh/getpot.h" #include "libmesh/libmesh.h" #include "libmesh/libmesh_common.h" #include "libmesh/linear_implicit_system.h" #include "libmesh/mesh.h" #include <iostream> #+end_src |
From: John P. <jwp...@gm...> - 2021-08-16 12:45:03
|
On Sat, Aug 14, 2021 at 12:29 PM Charles Puelz <cha...@gm...> wrote: > Hello, > > I am trying to write both a mesh and data corresponding to a libMesh system > to a single MSH file. It looks like this can be done with an MSH file > version > 4. > > At this point I can separately write out a mesh in an MSH file using the > "write" function and system data to a POS file using > 'write_equation_systems" or "write_nodal_data." > Is it possible to write both the mesh and system data to a single MSH file > with version > 4? > This might be something that Gmsh supports, but I don't think we support it in libmesh currently. Otherwise, does anyone have an idea for combining legacy POS and MSH files > for system data and a mesh in another way? > I guess it would depend on the file format definitions for both file types, which I'm not very familiar with. They are both ASCII files, so have you tried to simply "cat" them together? Also, what is your ultimate goal here, just to have a single file for organization purposes? -- John |
From: Charles P. <cha...@gm...> - 2021-08-14 17:28:46
|
Hello, I am trying to write both a mesh and data corresponding to a libMesh system to a single MSH file. It looks like this can be done with an MSH file version > 4. At this point I can separately write out a mesh in an MSH file using the "write" function and system data to a POS file using 'write_equation_systems" or "write_nodal_data." Is it possible to write both the mesh and system data to a single MSH file with version > 4? Otherwise, does anyone have an idea for combining legacy POS and MSH files for system data and a mesh in another way? Thanks! -- Charles |
From: John P. <jwp...@gm...> - 2021-08-12 21:02:46
|
On Thu, Aug 12, 2021 at 3:59 PM Renato Poli <re...@gm...> wrote: > Thanks, > > As I understood, it just works without any major concern in residual and > jacobian calculations, right? > I must add the DirichletBoundary to the system dof_map and LibMesh handles > the matrix and vectors so Petsc will receive the constrained system. > Is that correct? > Yes, as long as you have a line similar to dof_map.constrain_element_matrix_and_vector (Ke, Re, dof_indices); in your assembly routine like in systems_of_equations_ex8, then I think it should "just work". -- John |
From: Renato P. <re...@gm...> - 2021-08-12 20:59:40
|
Thanks, As I understood, it just works without any major concern in residual and jacobian calculations, right? I must add the DirichletBoundary to the system dof_map and LibMesh handles the matrix and vectors so Petsc will receive the constrained system. Is that correct? Thanks, Renato On Thu, Aug 12, 2021 at 11:07 AM Vikram Garg <vik...@gm...> wrote: > Hello Renato, > I think example 8 in systems_of_equations should be > useful in this context. > > Vikram Garg > > > On Thu, Aug 12, 2021 at 8:48 AM Renato Poli <re...@gm...> wrote: > >> Hi all, >> >> I had no reply on this one, I am struggling with this design. >> I could not make this work, should I go for the Penalty method? >> >> Renato >> >> >> On Tue, Aug 10, 2021 at 10:49 PM Renato Poli <re...@gm...> wrote: >> >> > Hi, >> > >> > In linear systems, I was used to adding dirichlet constraints with >> > dogmap.add_dirichlet_constraints(). I needed to use >> > heterogeneously_constrain_matrix_and_vector after assembly. >> > >> > What would be the way to do that in NonlinearImplicitSystem? I >> understand >> > that NR solvers solve for the increment, so that "heterogeneously" would >> > make little sense. >> > >> > Should I expect Dirichlet constraints to work anyway? >> > >> > Renato >> > >> >> _______________________________________________ >> Libmesh-users mailing list >> Lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libmesh-users >> > |
From: Vikram G. <vik...@gm...> - 2021-08-12 14:07:22
|
Hello Renato, I think example 8 in systems_of_equations should be useful in this context. Vikram Garg On Thu, Aug 12, 2021 at 8:48 AM Renato Poli <re...@gm...> wrote: > Hi all, > > I had no reply on this one, I am struggling with this design. > I could not make this work, should I go for the Penalty method? > > Renato > > > On Tue, Aug 10, 2021 at 10:49 PM Renato Poli <re...@gm...> wrote: > > > Hi, > > > > In linear systems, I was used to adding dirichlet constraints with > > dogmap.add_dirichlet_constraints(). I needed to use > > heterogeneously_constrain_matrix_and_vector after assembly. > > > > What would be the way to do that in NonlinearImplicitSystem? I understand > > that NR solvers solve for the increment, so that "heterogeneously" would > > make little sense. > > > > Should I expect Dirichlet constraints to work anyway? > > > > Renato > > > > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users > |
From: Renato P. <re...@gm...> - 2021-08-12 13:48:04
|
Hi all, I had no reply on this one, I am struggling with this design. I could not make this work, should I go for the Penalty method? Renato On Tue, Aug 10, 2021 at 10:49 PM Renato Poli <re...@gm...> wrote: > Hi, > > In linear systems, I was used to adding dirichlet constraints with > dogmap.add_dirichlet_constraints(). I needed to use > heterogeneously_constrain_matrix_and_vector after assembly. > > What would be the way to do that in NonlinearImplicitSystem? I understand > that NR solvers solve for the increment, so that "heterogeneously" would > make little sense. > > Should I expect Dirichlet constraints to work anyway? > > Renato > |
From: John P. <jwp...@gm...> - 2021-08-11 14:28:32
|
On Tue, Aug 10, 2021 at 7:34 PM edgar <edg...@cr...> wrote: > Hello! > > I am trying to do something like this (systems of equations, example 6): > > DenseSubMatrix<Number> Ke_var[3][3] = > { > {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), > DenseSubMatrix<Number>(Ke)}, > {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), > DenseSubMatrix<Number>(Ke)}, > {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), > DenseSubMatrix<Number>(Ke)} > }; > > Except that I would like to do it like this (does not work): > > const unsigned int mesh_dim = mesh.mesh_dimension (); > DenseSubMatrix<Number> Ke_var[mesh_dim][mesh_dim]; > for (unsigned int i=0; i<mesh_dim; i++) > for (unsigned int j=0; j<mesh_dim; i++) > Ke_var[i][j] = DenseSubMatrix<Number>(Ke); > > - One of the reasons for which this does not work is that there is no > empty constructor defined for =DenseSubMatrix<T>=. In other words, the > second line in the above code requires parametrized initialization. > - I considered using double pointers (**) and =new= (dynamic > allocation), but that would be a bomb for memory. > - Since =mesh_dim= is =const=, I think that even the ISO C++ would be > fine with =Ke_var[mesh_dim][mesh_dim]=. > - I also thought of playing with =new_m= and =new_n= from the definition > of the constructor (something like =DenseSubMatrix<Number> Ke_var (Ke, > 0, 0, mesh_dim, mesh_dim)=), but I don't know how I would do that. > > The point is to be able to generate the matrix with specific dimensions. > Can you help me, please? Thanks! > I don't know of a way to achieve this using 2D arrays, but if you are willing to use a std::vector of DenseSubMatrices, you can do something like: std::vector<DenseSubMatrix<Number>> Ke_vec(mesh_dim*mesh_dim, DenseSubMatrix<Number>(Ke)); You could then get the (i,j) entry at index k = mesh_dim*j + i. And of course you could wrap all this up in a helper class if you wanted the syntax to be nicer. -- John |
From: Renato P. <re...@gm...> - 2021-08-11 01:50:05
|
Hi, In linear systems, I was used to adding dirichlet constraints with dogmap.add_dirichlet_constraints(). I needed to use heterogeneously_constrain_matrix_and_vector after assembly. What would be the way to do that in NonlinearImplicitSystem? I understand that NR solvers solve for the increment, so that "heterogeneously" would make little sense. Should I expect Dirichlet constraints to work anyway? Renato |
From: edgar <edg...@cr...> - 2021-08-11 00:34:08
|
Hello! I am trying to do something like this (systems of equations, example 6): DenseSubMatrix<Number> Ke_var[3][3] = { {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke)}, {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke)}, {DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke), DenseSubMatrix<Number>(Ke)} }; Except that I would like to do it like this (does not work): const unsigned int mesh_dim = mesh.mesh_dimension (); DenseSubMatrix<Number> Ke_var[mesh_dim][mesh_dim]; for (unsigned int i=0; i<mesh_dim; i++) for (unsigned int j=0; j<mesh_dim; i++) Ke_var[i][j] = DenseSubMatrix<Number>(Ke); - One of the reasons for which this does not work is that there is no empty constructor defined for =DenseSubMatrix<T>=. In other words, the second line in the above code requires parametrized initialization. - I considered using double pointers (**) and =new= (dynamic allocation), but that would be a bomb for memory. - Since =mesh_dim= is =const=, I think that even the ISO C++ would be fine with =Ke_var[mesh_dim][mesh_dim]=. - I also thought of playing with =new_m= and =new_n= from the definition of the constructor (something like =DenseSubMatrix<Number> Ke_var (Ke, 0, 0, mesh_dim, mesh_dim)=), but I don't know how I would do that. The point is to be able to generate the matrix with specific dimensions. Can you help me, please? Thanks! |
From: John P. <jwp...@gm...> - 2021-08-10 16:00:37
|
On Tue, Aug 10, 2021 at 10:42 AM Renato Poli <re...@gm...> wrote: > Thanks John. > > I had not realized this was the issue, your explanation was quite > instructive. > > There was indeed a bug on my code, fixed now. > OK, great! -- John |
From: Renato P. <re...@gm...> - 2021-08-10 15:42:50
|
Thanks John. I had not realized this was the issue, your explanation was quite instructive. There was indeed a bug on my code, fixed now. Best regards, Renato Em ter., 10 de ago. de 2021 10:17, John Peterson <jwp...@gm...> escreveu: > According to frame #6, we are trying to cast a nullptr (oldvar): > > #6 0x00007ffff598d1bf in libMesh::cast_ptr<libMesh::PetscMatrix<double>*, > libMesh::SparseMatrix<double> > (oldvar=0x0) at > ./include/libmesh/libmesh_common.h:582 > > In libMesh::cast_ptr, we throw an error if the result of the cast is a > nullptr (which is what happens when the incoming pointer is nullptr). The > error message you are actually seeing on line 582 is caused when we > dereference the input nullptr in order to try and print a better error > message. So, we should probably try to avoid doing that, but the bigger > question is how/why you would are calling solve() with a nullptr > preconditioner matrix... this could be due to some other bug in your user > code perhaps. > > -- > John > > > On Mon, Aug 9, 2021 at 7:39 PM Renato Poli <re...@gm...> wrote: > >> Hi, >> >> I see this issue: >> >> Failed to convert N7libMesh12SparseMatrixIdEE pointer to >> PN7libMesh11PetscMatrixIdEE >> The N7libMesh12SparseMatrixIdEE appears to be a >> Thread 1 "sim" hit Breakpoint 1, 0x00007ffff1d58d60 in PMPI_Abort () from >> /usr/lib/x86_64-linux-gnu/libmpi.so.40 >> (gdb) bt >> #0 0x00007ffff1d58d60 in PMPI_Abort () from >> /usr/lib/x86_64-linux-gnu/libmpi.so.40 >> #1 0x00007ffff4ff6658 in libMesh::libmesh_terminate_handler () at >> ../src/base/libmesh.C:321 >> #2 0x00007ffff1b7f38c in ?? () from >> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #3 0x00007ffff1b7f3f7 in std::terminate() () from >> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #4 0x00007ffff1b7f6a9 in __cxa_throw () from >> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #5 0x00007ffff1b733b1 in __cxa_bad_typeid () from >> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #6 0x00007ffff598d1bf in libMesh::cast_ptr<libMesh::PetscMatrix<double>*, >> libMesh::SparseMatrix<double> > (oldvar=0x0) at >> ./include/libmesh/libmesh_common.h:582 >> #7 0x00007ffff5bbf9a5 in libMesh::PetscNonlinearSolver<double>::solve >> (this=0x555555a1e4a0, pre_in=..., x_in=..., r_in=...) at >> ../src/solvers/petsc_nonlinear_solver.C:794 >> #8 0x00007ffff5c52062 in libMesh::NonlinearImplicitSystem::solve >> (this=0x5555559d0390) at ../src/systems/nonlinear_implicit_system.C:189 >> #9 0x000055555568695f in Poroelastic::solve (this=0x555555a1ece0) at >> /home/renato/dev/chimas3d/src/Poroelastic.cpp:253 >> #10 0x000055555562f8b7 in TimeLoop::main_loop (this=0x7fffffffda50) at >> /home/renato/dev/chimas3d/src/TimeLoop.cpp:86 >> #11 0x000055555562f1be in TimeLoop::TimeLoop (this=0x7fffffffda50, ci=..., >> m=...) at /home/renato/dev/chimas3d/src/TimeLoop.cpp:23 >> #12 0x000055555561c57c in main (argc=1, argv=0x7fffffffddc8) at >> /home/renato/dev/chimas3d/src/main.cpp:17 >> >> I am using libmesh master branch and petsc 3.15.3. >> >> Any idea of what might be wrong? >> >> Thanks, >> Renato >> >> _______________________________________________ >> Libmesh-users mailing list >> Lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libmesh-users >> > > > -- > John > |
From: John P. <jwp...@gm...> - 2021-08-10 13:17:24
|
According to frame #6, we are trying to cast a nullptr (oldvar): #6 0x00007ffff598d1bf in libMesh::cast_ptr<libMesh::PetscMatrix<double>*, libMesh::SparseMatrix<double> > (oldvar=0x0) at ./include/libmesh/libmesh_common.h:582 In libMesh::cast_ptr, we throw an error if the result of the cast is a nullptr (which is what happens when the incoming pointer is nullptr). The error message you are actually seeing on line 582 is caused when we dereference the input nullptr in order to try and print a better error message. So, we should probably try to avoid doing that, but the bigger question is how/why you would are calling solve() with a nullptr preconditioner matrix... this could be due to some other bug in your user code perhaps. -- John On Mon, Aug 9, 2021 at 7:39 PM Renato Poli <re...@gm...> wrote: > Hi, > > I see this issue: > > Failed to convert N7libMesh12SparseMatrixIdEE pointer to > PN7libMesh11PetscMatrixIdEE > The N7libMesh12SparseMatrixIdEE appears to be a > Thread 1 "sim" hit Breakpoint 1, 0x00007ffff1d58d60 in PMPI_Abort () from > /usr/lib/x86_64-linux-gnu/libmpi.so.40 > (gdb) bt > #0 0x00007ffff1d58d60 in PMPI_Abort () from > /usr/lib/x86_64-linux-gnu/libmpi.so.40 > #1 0x00007ffff4ff6658 in libMesh::libmesh_terminate_handler () at > ../src/base/libmesh.C:321 > #2 0x00007ffff1b7f38c in ?? () from > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > #3 0x00007ffff1b7f3f7 in std::terminate() () from > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > #4 0x00007ffff1b7f6a9 in __cxa_throw () from > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > #5 0x00007ffff1b733b1 in __cxa_bad_typeid () from > /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > #6 0x00007ffff598d1bf in libMesh::cast_ptr<libMesh::PetscMatrix<double>*, > libMesh::SparseMatrix<double> > (oldvar=0x0) at > ./include/libmesh/libmesh_common.h:582 > #7 0x00007ffff5bbf9a5 in libMesh::PetscNonlinearSolver<double>::solve > (this=0x555555a1e4a0, pre_in=..., x_in=..., r_in=...) at > ../src/solvers/petsc_nonlinear_solver.C:794 > #8 0x00007ffff5c52062 in libMesh::NonlinearImplicitSystem::solve > (this=0x5555559d0390) at ../src/systems/nonlinear_implicit_system.C:189 > #9 0x000055555568695f in Poroelastic::solve (this=0x555555a1ece0) at > /home/renato/dev/chimas3d/src/Poroelastic.cpp:253 > #10 0x000055555562f8b7 in TimeLoop::main_loop (this=0x7fffffffda50) at > /home/renato/dev/chimas3d/src/TimeLoop.cpp:86 > #11 0x000055555562f1be in TimeLoop::TimeLoop (this=0x7fffffffda50, ci=..., > m=...) at /home/renato/dev/chimas3d/src/TimeLoop.cpp:23 > #12 0x000055555561c57c in main (argc=1, argv=0x7fffffffddc8) at > /home/renato/dev/chimas3d/src/main.cpp:17 > > I am using libmesh master branch and petsc 3.15.3. > > Any idea of what might be wrong? > > Thanks, > Renato > > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users > -- John |
From: Renato P. <re...@gm...> - 2021-08-10 00:38:51
|
Hi, I see this issue: Failed to convert N7libMesh12SparseMatrixIdEE pointer to PN7libMesh11PetscMatrixIdEE The N7libMesh12SparseMatrixIdEE appears to be a Thread 1 "sim" hit Breakpoint 1, 0x00007ffff1d58d60 in PMPI_Abort () from /usr/lib/x86_64-linux-gnu/libmpi.so.40 (gdb) bt #0 0x00007ffff1d58d60 in PMPI_Abort () from /usr/lib/x86_64-linux-gnu/libmpi.so.40 #1 0x00007ffff4ff6658 in libMesh::libmesh_terminate_handler () at ../src/base/libmesh.C:321 #2 0x00007ffff1b7f38c in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff1b7f3f7 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff1b7f6a9 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff1b733b1 in __cxa_bad_typeid () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007ffff598d1bf in libMesh::cast_ptr<libMesh::PetscMatrix<double>*, libMesh::SparseMatrix<double> > (oldvar=0x0) at ./include/libmesh/libmesh_common.h:582 #7 0x00007ffff5bbf9a5 in libMesh::PetscNonlinearSolver<double>::solve (this=0x555555a1e4a0, pre_in=..., x_in=..., r_in=...) at ../src/solvers/petsc_nonlinear_solver.C:794 #8 0x00007ffff5c52062 in libMesh::NonlinearImplicitSystem::solve (this=0x5555559d0390) at ../src/systems/nonlinear_implicit_system.C:189 #9 0x000055555568695f in Poroelastic::solve (this=0x555555a1ece0) at /home/renato/dev/chimas3d/src/Poroelastic.cpp:253 #10 0x000055555562f8b7 in TimeLoop::main_loop (this=0x7fffffffda50) at /home/renato/dev/chimas3d/src/TimeLoop.cpp:86 #11 0x000055555562f1be in TimeLoop::TimeLoop (this=0x7fffffffda50, ci=..., m=...) at /home/renato/dev/chimas3d/src/TimeLoop.cpp:23 #12 0x000055555561c57c in main (argc=1, argv=0x7fffffffddc8) at /home/renato/dev/chimas3d/src/main.cpp:17 I am using libmesh master branch and petsc 3.15.3. Any idea of what might be wrong? Thanks, Renato |
From: Renato P. <re...@gm...> - 2021-07-09 19:53:35
|
Hi I am integrating two systems in a explicit time evolution. It seems useful to have a fem wrapper to compute variables back and forth. I need to compute the temperature at a quadrature point, to use for pressure solution. Is there any helper in libmesh? Or should I implement my own? I would need functions like "value at" and "reinit" wrapping all FEM initialization verbosity, for example. Thanks, Renato |
From: David K. <dav...@ak...> - 2021-06-29 16:59:58
|
Regarding 2): This refers to the norm of the "Riesz representor" of the output, which is otherwise referred to as the dual of the output. Regarding 1): You can implement whatever you need for your case, and you can extend the code as needed... The main issue is to have a clear idea of what you want to implement and then you should be able to do it either using the already available code, or by extending the code in a simple way (by sub-classing the relevant classes). Best regards, David On Mon, Jun 28, 2021 at 9:16 PM 강신성 <ss...@pu...> wrote: > Hello, all. > > > I have a question about a non-compliant output problem in libMesh. > > I look into "rb_evaluation.C" and found that there is a code such that > *"RB_output_error_bounds[n] > = abs_error_bound * eval_output_dual_norm(n, mu);" *in line 292. > > > My questions are: > > 1) Can we address a non-compliant output problem in libMesh? > > 2) In the above code, is it correct that "eval_output_dual_norm(n, mu)*"* > is > the dual norm of the *dual* residual? > > > I look forward to hearing from you. > > Best regards, > > > > Shinseong Kang > > ------------------------------------------------------------ > > Shinseong Kang > Graduate Student > Pusan National University, South Korea > > Tel.: +82-51-510-3052 > H.P.: +82-10-9770-6595 > E-mail: ss...@pu... > > ------------------------------------------------------------ > > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users > |
From: edgar <edg...@cr...> - 2021-06-29 02:32:59
|
On 2021-06-28 18:45, John Peterson wrote: > Hi Edgar, > > Including your previous results, the ex4 patch alone still has the > fastest > ---8<--- snip Great! it means that your change really works. > But since you rebuilt libmesh between then and now, I'm not sure we > should > really compare the two. Precisely. > ---8<--- snip > in parallel is probably counter productive to our goals since: > 1.) It reduces the overall active time, > ---8<-- snip > it is affected by the timing code > itself. > 2.) It will introduce more variability in the results. Currently, > the coefficient of variation (mean divided by stddev) for these results > is > on the order of 15-18%, a fair bit larger than the differences in the > times > themselves. Right. > If you are interested in investigating this further, I would suggest > that > ---8<--- snip Although it would be interesting, it sounds like a task for someone with a tad more time than me :P (at the moment). At the end, I am quite sure that the changes which you introduced make the code more efficient. This task would surely bring more formality to it. Thanks! |