From 8da6581479f49f5f734bcf9815e30bdd408fafa4 Mon Sep 17 00:00:00 2001 From: pauletti Date: Sun, 3 Jun 2012 10:13:34 +0000 Subject: [PATCH] The point seems to be outside the cell git-svn-id: https://svn.dealii.org/trunk@25596 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/fe/mapping_real_to_unit_q4_sphere_xx.cc | 100 ++++++++++++++++++ .../cmp/generic | 9 ++ 2 files changed, 109 insertions(+) create mode 100644 tests/fe/mapping_real_to_unit_q4_sphere_xx.cc create mode 100644 tests/fe/mapping_real_to_unit_q4_sphere_xx/cmp/generic diff --git a/tests/fe/mapping_real_to_unit_q4_sphere_xx.cc b/tests/fe/mapping_real_to_unit_q4_sphere_xx.cc new file mode 100644 index 0000000000..483422e805 --- /dev/null +++ b/tests/fe/mapping_real_to_unit_q4_sphere_xx.cc @@ -0,0 +1,100 @@ +//----------------------------------------------------------------------------- +// $Id: data_out_base_pvd.cc 25569 2012-05-30 12:53:31Z bangerth $ +// Version: $Name$ +// +// Copyright (C) 2012 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------------- + + +// a redux of mapping_real_to_unit_q4_sphere_x. +// It seems that the point is outside the cell?? + + +#include "../tests.h" + +#include +#include +#include +#include +#include + +#include + +void test_real_to_unit_cell() +{ + const unsigned int dim = 3; + + // define a spherical cap boundary + // to be used for one of the faces + const double radius = Point(1.43757e-10, 4.48023e+06, 4.48023e+06).norm(); + HyperBallBoundary boundary (Point(), radius); + + // create the mesh: a single cell + // with the following coordinates: + std::vector > vertices; + vertices.push_back (Point( 6.70384e-11, 3.17728e+06, 3.17728e+06)); + vertices.push_back (Point( -1.46060e+06, 3.99043e+06, 1.46060e+06)); + vertices.push_back (Point( -1.46060e+06, 1.46060e+06, 3.99043e+06)); + vertices.push_back (Point( -2.59424e+06, 2.59424e+06, 2.59424e+06)); + vertices.push_back (Point( 1.43757e-10, 4.48023e+06, 4.48023e+06)); + vertices.push_back (Point( -2.05956e+06, 5.62684e+06, 2.05956e+06)); + vertices.push_back (Point( -2.05956e+06, 2.05956e+06, 5.62684e+06)); + vertices.push_back (Point( -3.65809e+06, 3.65809e+06, 3.65809e+06)); + // the points above don't show + // enough digits to have the same + // outer radius, so normalize the + // four outer ones + for (unsigned int v=4; v<8; ++v) + vertices[v] *= radius/vertices[v].norm(); + std::vector > cells; + { + CellData d = {{0,1,2,3,4,5,6,7},{0}}; + cells.push_back(d); + } + Triangulation triangulation; + triangulation.create_triangulation (vertices, cells, + SubCellData()); + + + FE_Q fe (1); + DoFHandler dh(triangulation); + dh.distribute_dofs (fe); + Vector dummy; + dummy.reinit(dh.n_dofs()); + DataOut > data_out; + data_out.attach_dof_handler (dh); + data_out.add_data_vector (dummy,"dummy"); + data_out.build_patches (); + std::ofstream output ("mapping_real_to_unit_q4_sphere_xx/plot.vtk"); + data_out.write_vtk (output); + + + // const Point p (-3.56413e+06, 1.74215e+06, 2.14762e+06); + // MappingQ1 map; + // typename Triangulation::active_cell_iterator + // cell = triangulation.begin_active(); + // deallog << map.transform_real_to_unit_cell(cell,p) << std::endl; +} + + +int +main() +{ + std::ofstream logfile ("mapping_real_to_unit_q4_sphere_xx/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test_real_to_unit_cell(); + + return 0; +} + + + diff --git a/tests/fe/mapping_real_to_unit_q4_sphere_xx/cmp/generic b/tests/fe/mapping_real_to_unit_q4_sphere_xx/cmp/generic new file mode 100644 index 0000000000..7bea8b1c89 --- /dev/null +++ b/tests/fe/mapping_real_to_unit_q4_sphere_xx/cmp/generic @@ -0,0 +1,9 @@ + +DEAL::dim=1, spacedim=1 +DEAL::OK +DEAL::dim=2, spacedim=2 +DEAL::OK +DEAL::dim=3, spacedim=3 +DEAL::OK +DEAL::dim=1, spacedim=2 +DEAL::OK -- 2.39.5