Re: [deal.II] Re: A problem about cylindrical coordinates.

2023-03-23 Thread RUIJIAN LU

Hi Dr. Bangerth,

Thanks for your message. 

I understand it. So when computing the equation and I need it times 
"2*pi*r", I should call pull_back() to transform the coordinates of the 
cylinder's vertices to "(r, phi, z)" to get "r". Is it right?

Best,
LU
在2023年3月24日星期五 UTC+8 00:46:33 写道:

> On 3/23/23 10:32, RUIJIAN LU wrote:
> > 
> > Thanks, you are right. Therefore, when I just create a triangulation by 
> > cylinder(), have the coordinates of its vertices already been in 
> > cylindrical coordinate(r, phi, z) system?(Of course, the 'z' should 
> > be x.) If it is right, is fe_values.quadrature_point(q_index)(0) equal 
> > to ‘r’, fe_values.quadrature_point(q_index)(1)equal to 'phi' and 
> > fe_values.quadrature_point(q_index)(0) equal to 'x'?
>
> deal.II only ever computes in a Cartesian coordinate system. Let's call 
> it x1,x2,x3. If you would like to *interpret* x1 as the radial 
> direction, and x2 as the angle phi, and x3 as the vertical distance z, 
> then that is your *choice* when you write down the equation. But the 
> coordinates of the cylinder's vertices are stored in x1,x2,x3.
>
> 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/9c83ca03-2680-4b38-ba92-c3ce56419b8bn%40googlegroups.com.


Re: [deal.II] How does the function "evaluate_vector_field()" for example work?

2023-03-23 Thread Wolfgang Bangerth

On 3/23/23 13:54, Abbas wrote:


Not exactly an FEM or dealii question but here goes.
I am not interested in knowing how the function "evaluate_vector_field" 
works per se, but I want to know how I can figure it out for myself from 
looking at the source code.


The function "evaluate_vector_field" is a good example. It is not 
exactly documented how it works. I grep searched the include and the 
source files for the function but I can't find the hard code that does 
the work.


I can ask "How does data post-processor calculate the gradients at the 
cell vertices?" but I want try figure out things like that on my own 
before coming here.


So, where is the hard code associated with the function 
"evaluate_vector_field()". I can't find it.


The function is abstract virtual, so it is not implemented in the 
library. You need to implement in user code when you use it, as shown in 
the various examples in the documentation, for example here:


https://dealii.org/developer/doxygen/deal.II/classDataPostprocessorTensor.html

What you are probably asking is where is this function called, and with 
which values. If you want to find that place, it is here:

https://github.com/dealii/dealii/blob/master/source/numerics/data_out.cc#L657-L664
I will say that that is quite a big function in which it is hidden. 
DataOut is not for the faint of heart.


In the end, if you are interested in learning the internal structure of 
deal.II, it is often useful to start reading the code via an IDE. IDEs 
are able to parse the entirety of the project and can jump to the place 
where a function is defined that you call from a user project; you don't 
have to know where that function is.


There is also the approach to just start working on small projects 
within the library. We have a number of starter projects for which we 
would be very happy to accept patches:

https://github.com/dealii/dealii/issues?q=is%3Aissue+is%3Aopen+label%3A%22Starter+project%22

Best
 W.


--

Wolfgang Bangerth  email: bange...@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/a87f258e-b92a-c10a-803b-8ffbe49aaae7%40colostate.edu.


[deal.II] How does the function "evaluate_vector_field()" for example work?

2023-03-23 Thread Abbas
Hello, 

Not exactly an FEM or dealii question but here goes. 
I am not interested in knowing how the function "evaluate_vector_field" 
works per se, but I want to know how I can figure it out for myself from 
looking at the source code. 

The function "evaluate_vector_field" is a good example. It is not exactly 
documented how it works. I grep searched the include and the source files 
for the function but I can't find the hard code that does the work.

I can ask "How does data post-processor calculate the gradients at the cell 
vertices?" but I want try figure out things like that on my own before 
coming here. 

So, where is the hard code associated with the function 
"evaluate_vector_field()". I can't find it. 

Thanks of course, 
Abbas  

-- 
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/25c133d0-376b-4f7a-b560-57334556a92fn%40googlegroups.com.


Re: [deal.II] Re: A problem about cylindrical coordinates.

2023-03-23 Thread Wolfgang Bangerth

On 3/23/23 10:32, RUIJIAN LU wrote:


Thanks, you are right. Therefore, when I just create a triangulation by 
cylinder(), have the coordinates of its vertices already been in 
cylindrical coordinate(r, phi, z) system?(Of course, the 'z' should 
be x.) If it is right, is fe_values.quadrature_point(q_index)(0) equal 
to ‘r’, fe_values.quadrature_point(q_index)(1)equal to 'phi' and 
fe_values.quadrature_point(q_index)(0) equal to 'x'?


deal.II only ever computes in a Cartesian coordinate system. Let's call 
it x1,x2,x3. If you would like to *interpret* x1 as the radial 
direction, and x2 as the angle phi, and x3 as the vertical distance z, 
then that is your *choice* when you write down the equation. But the 
coordinates of the cylinder's vertices are stored in x1,x2,x3.


Best
 W.


--

Wolfgang Bangerth  email: bange...@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/23a59c77-e14c-63aa-c387-1c9fb184fe6b%40colostate.edu.


[deal.II] Re: A problem about cylindrical coordinates.

2023-03-23 Thread RUIJIAN LU
Hi Dr. Bangerth,

Thanks for your message. 

I think the error is like Marc said. And if I call 
triangulation.refine_global() before set_manifold(), the error will go 
away. 

Best,
LU
在2023年3月24日星期五 UTC+8 00:32:04 写道:

> Hi Marc!
> Thanks, you are right. Therefore, when I just create a triangulation by 
> cylinder(), have the coordinates of its vertices already been in 
> cylindrical coordinate(r, phi, z) system?(Of course, the 'z' should be x.) 
> If it is right, is fe_values.quadrature_point(q_index)(0) equal to ‘r’, 
> fe_values.quadrature_point(q_index)(1)equal to 'phi' and 
> fe_values.quadrature_point(q_index)(0) equal to 'x'? 
> Best,
> LU
>
> 在2023年3月23日星期四 UTC+8 18:11:42 写道:
>
>> Hi!
>>
>> The manifold should be attached only to the hull of the cylinder, but in 
>> your code snippet you attach it to all cells. This leads to problems when 
>> new vertices need to be created on the symmetry axis.
>>
>> After a look in the GridGenerator::cylinder() 
>> 
>>  
>> documentation, you will notice that a CylindricalManifold object is already 
>> attached to those faces with a manifold ID 0. So you don't have to attach 
>> an additional one yourself!
>>
>> Marc
>>
>> On Wednesday, March 22, 2023 at 8:47:47 AM UTC+1 luruij...@gmail.com 
>> wrote:
>>
>>> Hi everyone, 
>>> I am a beginner to dealii, now I want to solve an equation on a 
>>> cylindrical coordinate system. I create a triangulation by cylinder() and 
>>> use CylindricalManifold for it, but it has some error. How can I do with it?
>>>
>>> error:
>>> Number dealii::Physics::VectorRelations::signed_angle(const 
>>> dealii::Tensor<1, dim, Number>&, const dealii::Tensor<1, dim, Number>&, 
>>> const dealii::Tensor<1, dim, Number>&) [with int spacedim = 3; Number = 
>>> double]
>>> The violated condition was: 
>>> std::abs(axis * a) < 1.e-12 * a.norm() && std::abs(axis * b) < 
>>> 1.e-12 * b.norm()
>>> Additional information: 
>>> The vectors are not perpendicular to the axial vector.
>>>
>>> code:
>>> const Tensor<1, 3> axis({1.0, 0.0, 0.0});
>>> const Point<3> axial_point(0.0, 0.0, 0.0);
>>> const CylindricalManifold<3> cylinder(axis, axial_point);
>>> 
>>> GridGenerator::cylinder(triangulation, 2.5, 2.5);
>>> for (auto cell : triangulation.active_cell_iterators())
>>> cell->set_all_manifold_ids(2);
>>> triangulation.set_manifold(2, cylinder);
>>>
>>

-- 
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/60160db2-9f80-4951-8a45-a853d9637905n%40googlegroups.com.


[deal.II] Re: A problem about cylindrical coordinates.

2023-03-23 Thread RUIJIAN LU
Hi Marc!
Thanks, you are right. Therefore, when I just create a triangulation by 
cylinder(), have the coordinates of its vertices already been in 
cylindrical coordinate(r, phi, z) system?(Of course, the 'z' should be x.) 
If it is right, is fe_values.quadrature_point(q_index)(0) equal to ‘r’, 
fe_values.quadrature_point(q_index)(1)equal to 'phi' and 
fe_values.quadrature_point(q_index)(0) equal to 'x'? 
Best,
LU

在2023年3月23日星期四 UTC+8 18:11:42 写道:

> Hi!
>
> The manifold should be attached only to the hull of the cylinder, but in 
> your code snippet you attach it to all cells. This leads to problems when 
> new vertices need to be created on the symmetry axis.
>
> After a look in the GridGenerator::cylinder() 
> 
>  
> documentation, you will notice that a CylindricalManifold object is already 
> attached to those faces with a manifold ID 0. So you don't have to attach 
> an additional one yourself!
>
> Marc
>
> On Wednesday, March 22, 2023 at 8:47:47 AM UTC+1 luruij...@gmail.com 
> wrote:
>
>> Hi everyone, 
>> I am a beginner to dealii, now I want to solve an equation on a 
>> cylindrical coordinate system. I create a triangulation by cylinder() and 
>> use CylindricalManifold for it, but it has some error. How can I do with it?
>>
>> error:
>> Number dealii::Physics::VectorRelations::signed_angle(const 
>> dealii::Tensor<1, dim, Number>&, const dealii::Tensor<1, dim, Number>&, 
>> const dealii::Tensor<1, dim, Number>&) [with int spacedim = 3; Number = 
>> double]
>> The violated condition was: 
>> std::abs(axis * a) < 1.e-12 * a.norm() && std::abs(axis * b) < 1.e-12 
>> * b.norm()
>> Additional information: 
>> The vectors are not perpendicular to the axial vector.
>>
>> code:
>> const Tensor<1, 3> axis({1.0, 0.0, 0.0});
>> const Point<3> axial_point(0.0, 0.0, 0.0);
>> const CylindricalManifold<3> cylinder(axis, axial_point);
>> 
>> GridGenerator::cylinder(triangulation, 2.5, 2.5);
>> for (auto cell : triangulation.active_cell_iterators())
>> cell->set_all_manifold_ids(2);
>> triangulation.set_manifold(2, cylinder);
>>
>

-- 
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/b16387ad-b062-49ee-933e-2fdfe11b5b03n%40googlegroups.com.


Re: [deal.II] A problem about cylindrical coordinates.

2023-03-23 Thread RUIJIAN LU

I think the error is like Marc said. And if I call refine_globle() before 
set_manifold(), the error will go away. 

Best,
LU
在2023年3月23日星期四 UTC+8 11:48:50 写道:

> On 3/22/23 01:47, RUIJIAN LU wrote:
> > 
> > I am a beginner to dealii, now I want to solve an equation on a 
> cylindrical 
> > coordinate system. I create a triangulation by cylinder() and use 
> > CylindricalManifold for it, but it has some error. How can I do with it?
> > 
> > error:
> > Number dealii::Physics::VectorRelations::signed_angle(const 
> dealii::Tensor<1, 
> > dim, Number>&, const dealii::Tensor<1, dim, Number>&, const 
> dealii::Tensor<1, 
> > dim, Number>&) [with int spacedim = 3; Number = double]
> > The violated condition was:
> > std::abs(axis * a) < 1.e-12 * a.norm() && std::abs(axis * b) < 
> 1.e-12 * 
> > b.norm()
> > Additional information:
> > The vectors are not perpendicular to the axial vector.
>
> Can you show what the backtrace is that gets you to this place? It would 
> be 
> important to understand what these vectors a, b, and axis are.
>
> 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/73e89a64-2545-463a-8cd6-258a70d757f2n%40googlegroups.com.


[deal.II] Non-square block with MatrixFreeOperators

2023-03-23 Thread Guilhem Poy

Hi everyone,

I am trying to set-up a non-square MatrixFree operator for which the 
destination and source vectors do not have the same dimension (in order 
to use it in a Schur complement). The way I am doing this is by passing 
two dof_handlers to the MatrixFree object, and select row_block=0 and 
column_block=1 when initializing my MatrixFreeOperators::Base (derived) 
object. In the assembly method, I am using multiple FEEvaluation object 
associated with different selected blocks to evaluate the source vector 
and integrate into the destination vector.


However, I am getting an assertion when trying debug my program, which 
makes me think I misunderstood the possibilities of the 
MatrixFreeOperators::Base class. The exact assertion is "AssertDimension 
(dst.size(), 
src.size());" and can be found line 1508 of 
deal.II/matrix_free/operators.h (and also l. 1563 and l. 1617). The 
message of this assertion is perfectly clear and tells me that my 
operator should be a square one, but I fail to understand why. Is there 
a fundamental limitation to this class that restricts it to square 
operators? I guess this would make sense if the only purpose of this 
class is to use it in a multigrid framework (which I do not really need 
for my coupling matrix in any case).


Best regards,

Guilhem

--
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/fc4b63b1-eb6b-e640-d14b-8cecfb956307%40gmail.com.


[deal.II] Re: DoFTools::make_periodicity_constraints error when working with FEColleciton

2023-03-23 Thread jose.a...@gmail.com
Hi dealii community,

I tested a reduced version of the MWE (attached to this E-Mail) on v9.4.0. 
In debug mode it runs in serial only when no global refinement is 
performed. Otherwise the assertion mentioned in the first E-Mail gets 
thrown. In parallel the assertion gets thrown in both cases. In release 
mode the code runs in serial but it parallel it leads to a segmentation 
fault in both cases (with and without refinement). Could it be that 
make_periodicity_constraints and hp are currently not compatible?

Cheers,
Jose
On Thursday, July 7, 2022 at 10:23:54 AM UTC+2 jose.a...@gmail.com wrote:

> Hi Peter,
>
> The assert is no longer triggered in serial (independently of the 
> triangulation is globally refined or not) but it is still triggered in 
> parallel (Line 2336 
> ).
>  
> I also tested in release mode. In serial the MWE runs and in parallel it 
> only runs if the triangulation is globally refined. If it is not, one gets 
> a segmentation fault 
>
> --
> Primary job  terminated normally, but 1 process returned
> a non-zero exit code. Per user-direction, the job has been aborted.
> --
> --
> mpirun noticed that process rank 0 with PID 0 on node fautm95 exited on 
> signal 11 (Segmentation fault).
> --
>
> In summary:
>
>- Debug: ./make_periodicity_constraints true -> works
>- Debug: ./make_periodicity_constraints false -> works
>- Debug: mpirun -np 2 ./make_periodicity_constraints true -> Assertion 
>gets thrown
>- Debug: mpirun -np 2 ./make_periodicity_constraints false -> 
>Assertion gets thrown
>- Release: ./make_periodicity_constraints true -> works
>- Release: ./make_periodicity_constraints false -> works
>- Release: mpirun -np 2 ./make_periodicity_constraints true -> works
>- Release: mpirun -np 2 ./make_periodicity_constraints false -> 
>Segmentation fault
>
>
> Jose
> On Tuesday, July 5, 2022 at 10:36:25 AM UTC+2 jose.a...@gmail.com wrote:
>
>> Hi Peter,
>>
>> Thanks! I will install your dealii fork and test it out.
>>
>> Cheers,
>> Jose
>>
>> On Monday, July 4, 2022 at 7:25:51 PM UTC+2 peterr...@gmail.com wrote:
>>
>>> Hi Rose,
>>>
>>> the assert was definitely not positioned at the right place and checked 
>>> on every face - even on non-active ones. I have moved it in the PR 
>>> https://github.com/dealii/dealii/pull/14091. Now this assert is not 
>>> triggered.
>>>
>>> Generally, I am wondering if hp and PBC is working. At least, I cannot 
>>> find a test in the hp test folder. Such a test should have triggered the 
>>> assert.
>>>
>>> Hope the patch works!
>>>
>>> Peter
>>>
>>> On Monday, 4 July 2022 at 18:09:41 UTC+2 jose.a...@gmail.com wrote:
>>>
 Dear dealii community,

 I am still trying to decipher what causes the error. It occurs in the 
 first assert of make_periodicity_constraints 
 
 :

 AssertDimension(
 face_1->get_fe(face_1->nth_active_fe_index(0)).n_unique_faces(), 1);

 So I created vectors to store the active_fe_index and the 
 nth_active_fe_index(0), replicated the fe_index_is_active assert and 
 the get_fe() call:

 active_fe_index.reinit(triangulation.n_active_cells());
 nth_active_fe_index.reinit(triangulation.n_active_cells());

 active_fe_index = -1.0;
 nth_active_fe_index = -1.0;

 for (const auto &cell :
 dof_handler.active_cell_iterators())
 if (cell->is_locally_owned())
 {
 active_fe_index(cell->active_cell_index()) = cell->active_fe_index();

 if (cell->at_boundary())
 for (const auto &face_id : cell->face_indices())
 if (cell->face(face_id)->at_boundary())
 {
 AssertThrow(cell->face(face_id)->get_active_fe_indices().size() == 1, 
 dealii::ExcMessage("Error!"));

 nth_active_fe_index(cell->active_cell_index()) = cell->face(face_id)->
 nth_active_fe_index(0);

 AssertThrow(cell->face(face_id)->fe_index_is_active(cell->face(face_id
 )->nth_active_fe_index(0)), dealii::ExcMessage("Error!"));

 cell->face(face_id)->get_fe(cell->face(face_id)->nth_active_fe_index(0
 ));
 }
 }

 I don't get any error from this loop and the from the visual inspection 
 of .vtu file containing both vectors one can see that they indeed 
 coincide. Maybe the problem is coming from GridTools::
 collect_periodic_faces as the face iterators are created by it?

 Furthermore I also noticed that if no global refinement is performed 
 the executable runs without error in serial but sti

[deal.II] Re: solution transfer for mesh adaptivity

2023-03-23 Thread Marc Fehling
Hi!

Your data lives on quadrature points, correct? And I assume you are using 
the parallel::distributed::Triangulation since you are checking for locally 
owned cells.

We have a class parallel::distributed:: 

ContinuousQuadratureDataTransfer 

 
that could fit your purpose. You can find some example applications in our 
tests, for example tests/base/quadrature_point_data.cc 

.

Hope this helps!
Marc

On Thursday, March 23, 2023 at 3:30:22 AM UTC+1 dongg...@gmail.com wrote:

> Hi all,
>
> I'm solving a phase field fracture problem and need to store the history 
> of elastic energy at each Gauss points. I wonder if there is anyway to 
> transfer( or interpolate) the energy stored at Gauss points of the old mesh 
> to the new mesh during mesh refinement operation. The snippet code below 
> shows how I store history of energy (called 'HistoryField' variable).
>
> for (auto &cell : dof_handler.active_cell_iterators())
> {
> if (cell->is_locally_owned())
> {
> PointHistory *local_quadrature_points_history =
> reinterpret_cast *>(cell->user_pointer());
> for(int q=0; q< quadrature_formula.size(); q++)
> {
> local_quadrature_points_history[q].HistoryField = 0.0;
> local_quadrature_points_history[q].max_Ybar = 0.0;
>
> }
> }
> }
>

-- 
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/b7c319ac-f66a-449b-9fc2-025262e17bf2n%40googlegroups.com.


[deal.II] Re: A problem about cylindrical coordinates.

2023-03-23 Thread Marc Fehling
Hi!

The manifold should be attached only to the hull of the cylinder, but in 
your code snippet you attach it to all cells. This leads to problems when 
new vertices need to be created on the symmetry axis.

After a look in the GridGenerator::cylinder() 

 
documentation, you will notice that a CylindricalManifold object is already 
attached to those faces with a manifold ID 0. So you don't have to attach 
an additional one yourself!

Marc

On Wednesday, March 22, 2023 at 8:47:47 AM UTC+1 luruij...@gmail.com wrote:

> Hi everyone, 
> I am a beginner to dealii, now I want to solve an equation on a 
> cylindrical coordinate system. I create a triangulation by cylinder() and 
> use CylindricalManifold for it, but it has some error. How can I do with it?
>
> error:
> Number dealii::Physics::VectorRelations::signed_angle(const 
> dealii::Tensor<1, dim, Number>&, const dealii::Tensor<1, dim, Number>&, 
> const dealii::Tensor<1, dim, Number>&) [with int spacedim = 3; Number = 
> double]
> The violated condition was: 
> std::abs(axis * a) < 1.e-12 * a.norm() && std::abs(axis * b) < 1.e-12 
> * b.norm()
> Additional information: 
> The vectors are not perpendicular to the axial vector.
>
> code:
> const Tensor<1, 3> axis({1.0, 0.0, 0.0});
> const Point<3> axial_point(0.0, 0.0, 0.0);
> const CylindricalManifold<3> cylinder(axis, axial_point);
> 
> GridGenerator::cylinder(triangulation, 2.5, 2.5);
> for (auto cell : triangulation.active_cell_iterators())
> cell->set_all_manifold_ids(2);
> triangulation.set_manifold(2, cylinder);
>

-- 
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/f13e8e86-f9d1-41c9-a9be-162db100f448n%40googlegroups.com.