-- ++--------------------------------------------++ Dr. Thomas Wick Maitre de conferences / Assistant Professor Centre de Mathematiques Appliquees (CMAP) Ecole Polytechnique 91128 Palaiseau cedex, France Email: thoma...@cmap.polytechnique.fr Phone: 0033 1 69 33 4579 www: http://www.cmap.polytechnique.fr/~wick/ ++--------------------------------------------++ --
--
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+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Dear Thomas Wick,
I see. So I should change it manually everywhere. I thought the degree variable will do this automatically, but why did you then implement it like this? Is it for another purpose?
Kind regards,S. A. Mohseni
-- ++--------------------------------------------++ Dr. Thomas Wick Maitre de conferences / Assistant Professor Centre de Mathematiques Appliquees (CMAP) Ecole Polytechnique 91128 Palaiseau cedex, France Email: thoma...@cmap.polytechnique.fr Phone: 0033 1 69 33 4579 www: http://www.cmap.polytechnique.fr/~wick/ ++--------------------------------------------++ --
-- ++--------------------------------------------++ Dr. Thomas Wick Maitre de conferences / Assistant Professor Centre de Mathematiques Appliquees (CMAP) Ecole Polytechnique 91128 Palaiseau cedex, France Email: thoma...@cmap.polytechnique.fr Phone: 0033 1 69 33 4579 www: http://www.cmap.polytechnique.fr/~wick/ ++--------------------------------------------++ --
The results illustrate the expected behavior: as long as the crack does not grow (up to t = 0.0095 s), there is only an increase in bulk energy. Once the crack starts growing, bulk energy is dissipated into crack energy.
By the way Thomas, if you don't remember me, we already met after your GACM 2015 conference presentation and within the GAMM phase-field workshop :)
Maybe you remember: Back then you already mentioned that h < epsilon to resolve the transition of the phase-field variable. Nevertheless, this is true for the cracked region, but if you have only elastic case the mesh size will not matter. This is just to allow a correct and accurate resolution and regularization of the phase-field crack region.
Kind regards,S. A. Mohseni
On 04/01/2017 01:19 PM, 'Seyed Ali Mohseni' via deal.II User Group wrote:
Dear Thomas,
Thank you. I checked the values and they are similar.
Within your predictor-corrector approach, I assume that you somehow exchange data between each step in order to be able to interpolate the old solution.
Am I able to use the same functions to store energy data in each Gauss point within each element? Or am I forced to implement and use the quadrature point history approach from step-18? Due to the storage of all the values in each element, the computation becomes inefficient. It would be nice to be able to access data anywhere and anytime. Actually, if you are using Miehe's approach I am confident that you will have to store the energy somewhere in order to find the maximum value of the energy. Is that true?
Kind regards,Seyed Ali
1. Do you compute on the same mesh?
2. do you compile in release mode or debug mode?
Release is faster.
3. Possibly you can optimize deal.Il with respect to the CPU etc.On my desktop computer at work, deal.II is 2 - 4 times slower than
Each Core i7 CPU has maximum 4 physical cores. So, in MPI mode, solving the simulation using 4 core is faster than 8 cores in your computer.
for (; cell != endc; ++cell) if ( cell->is_locally_owned() ) { fe_values.reinit(cell);
local_matrix = 0; local_rhs = 0;
int cell_index = cell->active_cell_index();
...
// COMPUTE: B-Operator
for (unsigned int q = 0; q < n_q_points; ++q) // loop over integration/quadrature points (GPs) { b_operators[cell_index][q] = Tensors::get_b_operator(fe_values, dofs_per_cell, q); }
B = b_operators;
// Old Newton iteration values fe_values.get_function_values(rel_solution, old_solution_values); fe_values.get_function_gradients(rel_solution, old_solution_grads);
...
}
std::vector<std::vector<FullMatrix<double>>>B; // temporary cell storage solution (inefficient!)
template<int dim>FullMatrix<double> get_b_operator (const FEValues<dim> &fe_values, const unsigned int dofs_per_cell, const unsigned int q){ FullMatrix<double> tmp(dim, GeometryInfo<dim>::vertices_per_cell);
// Remark: For vector-valued problems each column is a value for each value of the solution variable, hence here 3 DoFs per node (dofs_per_cell = 12)! for (unsigned int i = 0; i < dofs_per_cell; i += 3) { const unsigned int index = i / 3;
// COMPUTE: B-operator (Remark: This version has to be extended for 3D!) tmp[0][index] = fe_values.shape_grad_component(i, q, 0)[0]; tmp[1][index] = fe_values.shape_grad_component(i, q, 0)[1]; }
return tmp;}
-- ++--------------------------------------------++ Dr. Thomas Wick Maitre de conferences / Assistant Professor Centre de Mathematiques Appliquees (CMAP) Ecole Polytechnique 91128 Palaiseau cedex, France Email: thoma...@cmap.polytechnique.fr Phone: 0033 1 69 33 4579 www: http://www.cmap.polytechnique.fr/~wick/ ++--------------------------------------------++ --
Dear Thomas,Sure, my bad. I am sorry for the inconvenience it may have caused you and Timo. Unfortunately, I was just paying attention to the input text file and oversaw the changes I actually made. Won't happen again. ;)Regarding the speedup, I just figured out how to make use of the CellDataStorage function which has been recently implemented within deal.II. First of all, I want to thank Denis Davydov and Jean-Paul Pelteret for implementing it so nice and stable. :) Without their recent work, I probably would have to find a way to write it myself somehow. Regarding
the CellDataStorage approach: Is it possible to store a FullMatrix<double> within the MyQData struct function? If yes, do I have to write separate functions for pack_values and unpack_values functions?
struct MyQData: public TransferableQuadraturePointData{ double psi; FullMatrix<double> B;
unsigned int number_of_values () const { return 2; }
virtual void pack_values (std::vector<double> &scalars) const { Assert(scalars.size()==1, ExcInternalError()); scalars[0] = psi; }
virtual void pack_values (std::vector<FullMatrix<double>> &matrices) const { Assert(scalars.size()==1, ExcInternalError()); matrices[0] = B; }
virtual void unpack_values (const std::vector<double> &scalars) { Assert(scalars.size() ==1, ExcInternalError()); psi = scalars[0]; }
virtual void unpack_values (const std::vector<FullMatrix<double>> &matrices) { Assert(matrices.size() ==1, ExcInternalError()); B = matrices[0]; }};
Note that this may not be what you want in the context of crack propagation because what we do to transfer is assume that the quadrature data is continuous across the element (thus the name ContinuousQuadratureDataTransfer).
--
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 a topic in the Google Groups "deal.II User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dealii/rgv4YGx5VJE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dealii+un...@googlegroups.com.
Hi S. A. Mohseni,
I'm also interested on the cracking mechanics, where is such an example for crack propagation ?
Thanks !
-- ++--------------------------------------------++ Prof. Dr. Thomas Wick Institut für Angewandte Mathematik (IfAM) Leibniz Universität Hannover Welfengarten 1 30167 Hannover, Germany Tel.: +49 511 762 3360 Email: thoma...@ifam.uni-hannover.de www: http://www.ifam.uni-hannover.de/wick
www: http://www.cmap.polytechnique.fr/~wick/ ++--------------------------------------------++ --
--
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+un...@googlegroups.com.