Sabyasachi,
it took me a while to understand that what you are asking is not actually a
question about deal.II but about how to do what you are suggesting in C++.
The relevant part of the setup_q_point_data() function in step-18 is this:
quadrature_point_history.resize(
triangulation.n_locally_owned_active_cells()
* quadrature_formula.size());
unsigned int history_index = 0;
for (auto &cell : triangulation.active_cell_iterators())
if (cell->is_locally_owned())
{
cell->set_user_pointer(&quadrature_point_history[history_index]);
history_index += quadrature_formula.size();
}
What this is doing is simply allocating enough objects and then setting
pointers from the cell to the individual objects. In other words, at the time
where the objects are created (in the resize() call), the history objects are
not yet associated with individual cells, and so you could not set a depth for
each object.
You could of course turn the order around and go over cells and on every cell
you create an object that you then add to the collection via
quadrature_point_history.push_back(...);
Because you know which cell/q-point each object is associated when you create
it, you can compute the depth and pass it to the constructor.
Alternatively, you could leave the order in place and set the depth at a later
time -- i.e., you'd add a "setter function" to your class, and in the body of
the loop over all cells you'd loop over all quadrature points and set the
depth for the corresponding history object.
I hope this helps!
Best
W.
On 9/8/21 2:04 PM, sabyasachi chatterjee wrote:
Hello all,
I defined a class named SCDWrapper inside the point history class which needs
information about the depth of the gauss point corresponding to the point
history object's location from the surface when it is created.
```
template <int dim>
class PointHistory
{
public:
PointHistory(double&);
~PointHistory();
SCDWrapper srscd;
};
```
So I added an argument storing the depth to the constructor of point history
class which then passes it to the member class.
```
template <int dim> PointHistory<dim>::PointHistory(double
&depth_in):srscd(depth_in)
{
}
```
My question is how do I initialize the point history objects with this
argument (which is variable across the gauss points) and pass it to the
constructor. For example, in Step 18 in the function
/setup_quadrature_point_history/ where the point history objects are
initialized, how do I pass the information about this depth variable.
Thanks,
Sabyasachi
--
The deal.II project is located at http://www.dealii.org/
<https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.dealii.org%2F&data=04%7C01%7CWolfgang.Bangerth%40colostate.edu%7Cf76c21631c3a4524f70e08d97303efe6%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637667283758597366%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8pUEg2fir6ovEFyj%2BXUBO2XKLPi8pC9%2Fkn3%2BYSK8cVk%3D&reserved=0>
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fforum%2Fdealii%3Fhl%3Den&data=04%7C01%7CWolfgang.Bangerth%40colostate.edu%7Cf76c21631c3a4524f70e08d97303efe6%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637667283758607353%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=J6zhwNNMmHk3%2F%2BMM%2FKIqP0PIEZSoda2zDHqTP2CAbC8%3D&reserved=0>
---
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 [email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/14ce9ef5-57d2-4bbd-bc07-52e5198a5490n%40googlegroups.com
<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fdealii%2F14ce9ef5-57d2-4bbd-bc07-52e5198a5490n%2540googlegroups.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=04%7C01%7CWolfgang.Bangerth%40colostate.edu%7Cf76c21631c3a4524f70e08d97303efe6%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637667283758617352%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=SqhUO%2FsVvsLvv8R%2BCxUDNSfgGyPj4GLpUqW9qeJf3Lw%3D&reserved=0>.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/35efe4d8-c17c-2df3-4556-ba7ad612f06c%40colostate.edu.