Re: [deal.II] Weak scaling running out of memory

2023-06-07 Thread Lucas Myers
Hi Martin, The problem that you suggest was indeed what was happening. Thanks so much for the help! I imagine this helped me avoid a long debugging process. As an aside, is this something that would qualify for an error message? Something like putting an Assert line at the top of any number of fu

[deal.II] Trouble with including deal.II functions into user-written library

2023-06-07 Thread Kyle Schwiebert
Hello, I'm just beginning to combine several files from my work into a more cohesive whole. To do this I'm trying to modularize the code and am thus taking a first stab at linking a user-defined library to deal.II. I have the following in my CMakeLists.txt: CMAKE_MINIMUM_REQUIRED(VERSION 3.16.3

Re: [deal.II] Weak scaling running out of memory

2023-06-07 Thread Martin Kronbichler
Dear Lucas, Without seeing your code, it is difficult to nail down the issue. But by far the most common mistake that lead to this type of problem in my codes is that I forgot to initialize an AffineConstraints object with an index set for the locally relevant DoFs, i.e., I was missing this li

[deal.II] Weak scaling running out of memory

2023-06-07 Thread Lucas Myers
Hi everyone, I'm trying to run a scaling analysis on my code, but when I make the system too large I get a (Killed) error, which I strongly suspect has to do with memory issues. I'm unsure why this is happening, because I am increasing resources proportional to the system size. Details: I'm t

Re: [deal.II] FullMatrix::copy_to only works for dim <= 3

2023-06-07 Thread Tao Jin
Dear Wolfgang, Here is a simple test code (I also attached the source code): int main() { using namespace dealii; const unsigned int *matrix_dimension* = 4; Tensor<2, matrix_dimension> myTensor; FullMatrix myMatrix(matrix_dimension, matrix_dimension); for (unsigned int i = 0;

Re: [deal.II] Re: How can I visit a face exactly once when running with MPI?

2023-06-07 Thread Abbas Ballout
Thanks Wolfgang, Time, and Bruno for your comments. I hate to say thanks too much so sometimes I don't. On Wednesday, June 7, 2023 at 4:40:51 PM UTC+2 Wolfgang Bangerth wrote: > On 6/7/23 01:21, Abbas Ballout wrote: > > I set the flag when I create the mesh, then I loop on the faces inside a >

Re: [deal.II] Re: evaluation FE function outside domain

2023-06-07 Thread Mathieu
A bilinear extrapolation seems to be a suitable first try since the shape functions are bilinear. Going this way, I would compute the gradient of the function at a point at the boundary to come up with the extrapolated function value. Call the point outside the grid P, I would project P to the clos

Re: [deal.II] Re: evaluation FE function outside domain

2023-06-07 Thread Wolfgang Bangerth
On 6/7/23 10:57, Mathieu wrote: "Like Bruno already said in other words, you are starting at the wrong end of the question. In a first step, define mathematically *what* it is you want to do (and justify why this is the right choice). Then, in a second step, one can think about *how* to implement

Re: [deal.II] Applying multiple in-homogeneous Dirichlet boundary condition

2023-06-07 Thread Wolfgang Bangerth
On 6/7/23 09:55, Mohammad Amir Kiani Fordoei wrote: template void IncrementalBoundaryValues::vector_value(const Point & /*p*/, Vector &values) const { AssertDimension(values.size(), dim); std::vector Displacement_Magnitude_Factor (3,0); for (int k=0;k<3;k++) { double disp_mag_factor; std::cout<

Re: [deal.II] Re: evaluation FE function outside domain

2023-06-07 Thread Mathieu
"Like Bruno already said in other words, you are starting at the wrong end of the question. In a first step, define mathematically *what* it is you want to do (and justify why this is the right choice). Then, in a second step, one can think about *how* to implement this." I need this function (

[deal.II] Applying multiple in-homogeneous Dirichlet boundary condition

2023-06-07 Thread Mohammad Amir Kiani Fordoei
Hello I am trying to extend step-18 to a runtime program. To this end, I generate a triangulation made of several generate_from_name_and_arguments and merged them. then I assigned locus of various boundary id to that merged triangulation (obviously only at-boundary faces). Now I would like to app

[deal.II] Applying multiple in-homogeneous Dirichlet boundary condition

2023-06-07 Thread Mohammad Amir Kiani Fordoei
Hello I am trying to extend step-18 to extend it to a runtime program. To this end, I generate a triangulation made of several generate_from_name_and_arguments and merged them. then I assigned locus of various boundary id to that merged triangulation ( obviously only at-boundary faces). Now I wo

Re: [deal.II] Re: How can I visit a face exactly once when running with MPI?

2023-06-07 Thread Wolfgang Bangerth
On 6/7/23 01:21, Abbas Ballout wrote: I set the flag when I create the mesh, then I loop on the faces inside a mesh worker mesh loop and do something special at a flagged face. This has been working without any issues for sometime now. Is this error prone? This works on a single process. But i

Re: [deal.II] FullMatrix::copy_to only works for dim <= 3

2023-06-07 Thread Wolfgang Bangerth
On 6/6/23 15:46, Tao Jin wrote: However, the above copy_to() function only works when the tensor dimension is less or equal to 3, that is, Tensor<2, dim>, dim <=3. When dim is larger than 3, I have to use for loops to copy each matrix entry into the rank-2 tensor. What happens for dim>3? Yo

Re: [deal.II] Re: evaluation FE function outside domain

2023-06-07 Thread Wolfgang Bangerth
On 6/6/23 14:24, Mathieu wrote: for a post-processing step, I have to evaluate my temperature field at some points outside the mesh close to its boundary. I know that shape functions are not defined outside the mesh, that's why I wanted to extrapolate them. My idea was to use the gradient of

Re: [deal.II] Re: How can I visit a face exactly once when running with MPI?

2023-06-07 Thread Abbas Ballout
What if I am setting the user flag with something like this: for (const auto &cell : triangulation.active_cell_iterators()) for (const unsigned int face : cell->face_indices()) if ((cell->face(face)->center is between x1 and x2 ) cell->face(face)->set_user_flag(); I set the flag when I create th