Dear Professor Bangerth, Thank you for taking the time to answer my questions. Your guidance has been invaluable to my learning process. I deeply appreciate the comprehensive study resources provided by deal.II, including tutorials, videos, and documentation. They have enabled me to understand finite element methods in detail, beyond simply executing pre-defined commands. I am truly grateful for the knowledge and insights shared by you and the other contributors within the deal.II community.
Best regards, Yufei Fang On Monday, April 1, 2024 at 1:39:12 AM UTC+8 Wolfgang Bangerth wrote: > > Yufei: > that's a lot of questions :-) > > > 1. > > > > On line 313, there is the line “fe.shape_value(i, reference_location)”. > > The “reference_location” is defined from > > “particle.get_reference_location()”. “particle” is an instance of the > > “Particles::Particle” class, and the description of its > > “get_reference_location()” function says: "Return the reference location > > of this particle in its current cell.” > > > > My question is whether the reference location of the particle in its > > current cell refers to the real coordinates (x, y, z) or the reference > > coordinates (\xi_1, \xi_2, \xi_3) within the cell. > > I think you answered your own question: The "reference location" is in the > reference coordinate system of the reference cell. > > > 2. > > > > On line 509, 'cell->minimum_vertex_distance()', where 'cell' is defined > by > > 'const auto &cell : dof_handler.active_cell_iterators()'. According to > the > > documentation, 'cell' should be of type 'active_cell_iterator', because > of > > ‘IteratorRange< active_cell_iterator > active_cell_iterators () const’ . > > However, I couldn't find 'minimum_vertex_distance()' as a method of > > 'active_cell_iterator' in the manual. What the exact type of 'cell' is > and > > how it's able to access 'minimum_vertex_distance()'? > > If you go to any page of the deal.II website, for example > https://dealii.org/developer/doxygen/deal.II/step_19.html > there is a search box on the top right. If you type > "minimum_vertex_distance" > there, it takes you to the class that is a function of. > > For this specific case, you may also want to look at > https://dealii.org/developer/doxygen/deal.II/group__Iterators.html > > > > 3. > > > > In the documentation, the FEValues<dim, spacedim> class template requires > > two template arguments, 'dim' and 'spacedim'. However, on lines 227 and > > 534, FEValues is instantiated with only one template argument, > > FEValues<dim>. Similarly, for ‘std::vector<Tensor<1, dim>> > > field_gradients(vertex_quadrature.size())’ on line 536, the Tensor class > > is used with two arguments. ‘fe_values.get_function_gradients(solution, > > field_gradients)’ on line 546 uses field_gradients. but the > > get_function_gradients in the documentaiton is ‘void FEValuesBase< dim, > > spacedim >::get_function_gradients ( const ReadVector< Number > & > > fe_function, std::vector< Tensor< 1, spacedim, Number > > & gradients ) > > const’ , the Tensor template appears to require three arguments. > > > > Why there is a discrepancy in the number of template arguments used in > > these instances? > > Most classes in deal.II that have both dim and spacedim template arguments > are > declared like > template <int dim, int spacedim=dim> > class FEValues; > That is, spacedim=dim is the default. > > > > 4. > > > > In the inheritance diagram, what does the dashed yellow line represent? > > > > Untitled.png > > I don't actually know. Perhaps the doxygen documentation describes it? > Doxygen > is the tool we use to generate these pages. > > > > 5. > > > > In the 'Result' section of tutorial step-19, there's a simulation video. > > How can I create a similar animation, and what does the deep blue curve > > line in it represent? > > I believe that this video describes this: > https://www.math.colostate.edu/~bangerth/videos.676.11.html > > > > 6. > > > > In the ”make_grid()” function, four different boundary IDs are assigned > to > > the boundaries. Is there a way I can visualize these boundaries in > > ParaView or VisIt, so that I can verify if the boundaries are set > correctly? > > Take a look at the entry for "Boundary indicator" in the glossary: > https://dealii.org/developer/doxygen/deal.II/DEALGlossary.html > > > > 7. > > > > When running code in deal.II, is there a way to enable a debug mode > > similar to MATLAB or other IDEs? I'd like to execute the code line by > line > > starting from the main function, understand the program's logic, and > check > > the values of parameters (e.g., vertex_quadrature.size()). This would > help > > me gain a deeper understanding of what the program does. > > This is what a "debugger" is there for: > https://www.math.colostate.edu/~bangerth/videos.676.25.html > > Best > W. > -- > ------------------------------------------------------------------------ > Wolfgang Bangerth email: bang...@colostate.edu > www: http://www.math.colostate.edu/~bangerth/ > > > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/95029676-9ded-4236-a24e-0ef97c358672n%40googlegroups.com.