From 0b1dbe1725348ff714a3b3d787c2d38eea24b157 Mon Sep 17 00:00:00 2001 From: alberto sartori Date: Fri, 31 Jul 2015 18:37:40 +0200 Subject: [PATCH] added normal component --- include/parsed_dirichlet_bcs.h | 162 +- include/parsed_mapped_functions.h | 242 +-- source/parsed_mapped_functions.cc | 288 +++ .../parameters/parsed_mapped_functions_14.prm | 28 + tests/parsed_dirichlet_bcs_05.cc | 100 + tests/parsed_dirichlet_bcs_05.output | 1765 +++++++++++++++++ tests/parsed_dirichlet_bcs_06.cc | 101 + tests/parsed_dirichlet_bcs_06.output | 1765 +++++++++++++++++ tests/parsed_dirichlet_bcs_07.cc | 135 ++ tests/parsed_dirichlet_bcs_07.output | 1765 +++++++++++++++++ tests/parsed_dirichlet_bcs_08.cc | 125 ++ tests/parsed_dirichlet_bcs_08.output | 1765 +++++++++++++++++ tests/parsed_mapped_functions_13.cc | 28 + ...rsed_mapped_functions_13.expect=run.output | 0 tests/parsed_mapped_functions_14.cc | 29 + tests/parsed_mapped_functions_14.output | 11 + 16 files changed, 8069 insertions(+), 240 deletions(-) create mode 100644 source/parsed_mapped_functions.cc create mode 100644 tests/parameters/parsed_mapped_functions_14.prm create mode 100644 tests/parsed_dirichlet_bcs_05.cc create mode 100644 tests/parsed_dirichlet_bcs_05.output create mode 100644 tests/parsed_dirichlet_bcs_06.cc create mode 100644 tests/parsed_dirichlet_bcs_06.output create mode 100644 tests/parsed_dirichlet_bcs_07.cc create mode 100644 tests/parsed_dirichlet_bcs_07.output create mode 100644 tests/parsed_dirichlet_bcs_08.cc create mode 100644 tests/parsed_dirichlet_bcs_08.output create mode 100644 tests/parsed_mapped_functions_13.cc create mode 100644 tests/parsed_mapped_functions_13.expect=run.output create mode 100644 tests/parsed_mapped_functions_14.cc create mode 100644 tests/parsed_mapped_functions_14.output diff --git a/include/parsed_dirichlet_bcs.h b/include/parsed_dirichlet_bcs.h index ed164edf..ce94afe4 100644 --- a/include/parsed_dirichlet_bcs.h +++ b/include/parsed_dirichlet_bcs.h @@ -160,8 +160,38 @@ class ParsedDirichletBCs : public ParsedMappedFunctions const Quadrature &quadrature, std::map &projected_bv) const; + + /** + * wrapping of the VectorTools::compute_no_normal_flux_constraints functions of the + * deal.II library + */ + void compute_no_normal_flux_constraints (const DoFHandler &dof_handler, + ConstraintMatrix &constraints) const; + /** + * wrapping of the VectorTools::compute_no_normal_flux_constraints functions of the + * deal.II library + */ + void compute_no_normal_flux_constraints (const DoFHandler &dof_handler, + const Mapping< dim, spacedim > &mapping, + ConstraintMatrix &constraints) const; + /** + * wrapping of the VectorTools::compute_nonzero_normal_flux_constraints functions of the + * deal.II library + */ + void compute_nonzero_normal_flux_constraints (const DoFHandler &dof_handler, + ConstraintMatrix &constraints) const; + + /** + * wrapping of the VectorTools::compute_nonzero_normal_flux_constraints functions of the + * deal.II library + */ + void compute_nonzero_normal_flux_constraints (const DoFHandler &dof_handler, + const Mapping< dim, spacedim > &mapping, + ConstraintMatrix &constraints) const; + }; + template ParsedDirichletBCs:: ParsedDirichletBCs (const std::string &parsed_name, @@ -255,15 +285,15 @@ void ParsedDirichletBCs::project_boundary_values (con std::vector ids = this->get_mapped_ids(); for (unsigned int i=0; i::type boundary_map; + typename FunctionMap::type boundary_map; - Function *f; + Function *f; f = &(*(this->get_mapped_function(ids[i]))); boundary_map[ids[i]] = f; // from bool to int std::vector component_mapping; - if (dim > 1) // component_mapping is not supported in deal.II for dim==1 + if (spacedim > 1) // component_mapping is not supported in deal.II for dim==1 for (unsigned int j=0; jget_mapped_mask(ids[i])[j]); @@ -284,15 +314,15 @@ void ParsedDirichletBCs::project_boundary_values (con std::vector ids = this->get_mapped_ids(); for (unsigned int i=0; i::type boundary_map; + typename FunctionMap::type boundary_map; - Function *f; + Function *f; f = &(*(this->get_mapped_function(ids[i]))); boundary_map[ids[i]] = f; // from bool to int std::vector component_mapping; - if (dim > 1) // component_mapping is not supported in deal.II for dim==1 + if (spacedim > 1) // component_mapping is not supported in deal.II for dim==1 for (unsigned int j=0; jget_mapped_mask(ids[i])[j]); @@ -313,15 +343,15 @@ void ParsedDirichletBCs::project_boundary_values (con std::vector ids = this->get_mapped_ids(); for (unsigned int i=0; i::type boundary_map; + typename FunctionMap::type boundary_map; - Function *f; + Function *f; f = &(*(this->get_mapped_function(ids[i]))); boundary_map[ids[i]] = f; // from bool to int std::vector component_mapping; - if (dim > 1) // component_mapping is not supported in deal.II for dim==1 + if (spacedim > 1) // component_mapping is not supported in deal.II for dim==1 for (unsigned int j=0; jget_mapped_mask(ids[i])[j]); @@ -344,15 +374,15 @@ void ParsedDirichletBCs::project_boundary_values (con std::vector ids = this->get_mapped_ids(); for (unsigned int i=0; i::type boundary_map; + typename FunctionMap::type boundary_map; - Function *f; + Function *f; f = &(*(this->get_mapped_function(ids[i]))); boundary_map[ids[i]] = f; // from bool to int std::vector component_mapping; - if (dim > 1) // component_mapping is not supported in deal.II for dim==1 + if (spacedim > 1) // component_mapping is not supported in deal.II for dim==1 for (unsigned int j=0; jget_mapped_mask(ids[i])[j]); @@ -364,6 +394,114 @@ void ParsedDirichletBCs::project_boundary_values (con } } +template +void ParsedDirichletBCs::compute_no_normal_flux_constraints(const DoFHandler &dof_handler, + ConstraintMatrix &constraints) const +{ + std::set no_normal_flux_boundaries; + + typedef std::map, unsigned int > >::const_iterator it_type; + + for (it_type it=this->mapped_normal_components.begin(); it != this->mapped_normal_components.end(); ++it) + { + std::vector normal_ids = (it->second).first; + + for (unsigned int i=0; isecond).second, // unsigned int first component vector + no_normal_flux_boundaries, + constraints); + } +} + +template +void ParsedDirichletBCs::compute_no_normal_flux_constraints(const DoFHandler &dof_handler, + const Mapping< dim, spacedim > &mapping, + ConstraintMatrix &constraints) const +{ + std::set no_normal_flux_boundaries; + + typedef std::map, unsigned int > >::const_iterator it_type; + + for (it_type it=this->mapped_normal_components.begin(); it != this->mapped_normal_components.end(); ++it) + { + std::vector normal_ids = (it->second).first; + + for (unsigned int i=0; isecond).second, // unsigned int first component vector + no_normal_flux_boundaries, + constraints, + mapping); + } +} + + +template +void ParsedDirichletBCs::compute_nonzero_normal_flux_constraints(const DoFHandler &dof_handler, + ConstraintMatrix &constraints) const +{ + std::set no_normal_flux_boundaries; + + typedef std::map, unsigned int > >::const_iterator it_type; + + for (it_type it=this->mapped_normal_components.begin(); it != this->mapped_normal_components.end(); ++it) + { + typename FunctionMap::type boundary_map; + + std::vector normal_ids = (it->second).first; + + for (unsigned int i=0; i *f; + f = &(*(this->get_mapped_function(normal_ids[i]))); + boundary_map[normal_ids[i]] = f; + no_normal_flux_boundaries.insert(normal_ids[i]); + } + + VectorTools::compute_nonzero_normal_flux_constraints(dof_handler, + (it->second).second, // unsigned int first component vector + no_normal_flux_boundaries, + boundary_map, + constraints); + } +} + +template +void ParsedDirichletBCs::compute_nonzero_normal_flux_constraints(const DoFHandler &dof_handler, + const Mapping< dim, spacedim > &mapping, + ConstraintMatrix &constraints) const +{ + std::set no_normal_flux_boundaries; + + typedef std::map, unsigned int > >::const_iterator it_type; + + for (it_type it=this->mapped_normal_components.begin(); it != this->mapped_normal_components.end(); ++it) + { + typename FunctionMap::type boundary_map; + + std::vector normal_ids = (it->second).first; + + for (unsigned int i=0; i *f; + f = &(*(this->get_mapped_function(normal_ids[i]))); + boundary_map[normal_ids[i]] = f; + no_normal_flux_boundaries.insert(normal_ids[i]); + } + + VectorTools::compute_nonzero_normal_flux_constraints(dof_handler, + (it->second).second, // unsigned int first component vector + no_normal_flux_boundaries, + boundary_map, + constraints, + mapping); + } +} #endif diff --git a/include/parsed_mapped_functions.h b/include/parsed_mapped_functions.h index 6f527f78..ef109ef2 100644 --- a/include/parsed_mapped_functions.h +++ b/include/parsed_mapped_functions.h @@ -30,7 +30,7 @@ using namespace dealii; * unsigned int spacedim = 2; * unsigned int n_components = 3; // number of components of the problem * - * // create parsed_dirichlet object + * // create parsed_mapped_functions object * * ParsedMappedFunctions * parsed_mapped_functions("Forcing terms", // name for the section of the Parameter Handler to use @@ -91,6 +91,11 @@ class ParsedMappedFunctions : public ParameterAcceptor */ std::vector get_mapped_ids() const; + /** + * return the list of the mapped ids for which normal components have been set + */ + std::vector get_mapped_normal_ids() const; + /** * declare_parameters is inherithed by ParameterAcceptor @@ -134,11 +139,12 @@ class ParsedMappedFunctions : public ParameterAcceptor << arg2 << " does not belong to the knwon variables: " << print(unique(arg3)) <<"."); -private: +protected: void split_id_components(const std::string &parsed_idcomponents); void split_id_functions(const std::string &parsed_idfunctions, const std::string &constants); + void add_normal_components(); std::string name; @@ -147,238 +153,18 @@ class ParsedMappedFunctions : public ParameterAcceptor std::string str_component_names; std::string str_constants; std::vector _component_names; + std::vector _normal_components; + std::vector _all_components; std::vector ids; + std::vector normal_ids; std::map id_components; std::map > > id_functions; + std::map > > normal_id_functions; std::map > > > mapped_functions; + std::map, unsigned int > > mapped_normal_components; // name, (std::vector, firs component vector) + std::vector > normal_components; // first component vector, variable_name+"N" }; -template -ParsedMappedFunctions::ParsedMappedFunctions(const std::string &parsed_name, - const std::string &parsed_component_names, - const std::string &parsed_id_components, - const std::string &parsed_id_functions, - const std::string &parsed_constants): - ParameterAcceptor(parsed_name), - name (parsed_name), - str_id_components (parsed_id_components), - str_id_functions (parsed_id_functions), - str_component_names (parsed_component_names), - str_constants (parsed_constants) -{}; - -template -void ParsedMappedFunctions::parse_parameters_call_back() -{ - split_id_components(str_id_components); - split_id_functions(str_id_functions,str_constants); - AssertDimension(id_components.size(), id_functions.size()); - - typedef std::map::iterator it_type; - for (it_type it=id_components.begin(); it != id_components.end(); ++it) - { - std::pair > > mapped(it->second, id_functions[it->first]); - - mapped_functions[it->first] = mapped; - - } -} - -template -void ParsedMappedFunctions::split_id_components(const std::string &parsed_idcomponents) -{ - std::vector idcomponents; - - idcomponents = Utilities::split_string_list(parsed_idcomponents, '%'); - - for (unsigned int i=0; i id_comp; - std::vector components; - std::vector mask(n_components,false); - - id_comp = Utilities::split_string_list(idcomponents[i], '='); - - unsigned int id = Utilities::string_to_int(id_comp[0]); - ids.push_back(id); - - components = Utilities::split_string_list(id_comp[1], ';'); - Assert(components.size() <= n_components, - ExcMessage("Wrong number of components specified for id " + id_comp[0])); - for (unsigned int c=0; c -void ParsedMappedFunctions::split_id_functions(const std::string &parsed_idfunctions, - const std::string &constants) -{ - std::vector id_defined_functions; - - // if it is empty a ZeroFunction(n_components) is applied on the - // parsed ids in the components - if (parsed_idfunctions == "") - { - for (unsigned int i=0; i > ptr; - - ParameterHandler internal_prm; - dealii::Functions::ParsedFunction::declare_parameters(internal_prm, n_components); - ptr = SP(new dealii::Functions::ParsedFunction(n_components)); - ptr->parse_parameters(internal_prm); - - id_functions[ids[i]] = ptr; - } - } - else - { - - - std::vector idfunctions; - idfunctions = Utilities::split_string_list(parsed_idfunctions, '%'); - - for (unsigned int i=0; i id_func; - - id_func = Utilities::split_string_list(idfunctions[i], '='); - - unsigned int id = Utilities::string_to_int(id_func[0]); - - // check if the current id is also defined in id_components - Assert((std::find(ids.begin(), ids.end(), id) != ids.end()), - ExcIdNotMatch(id)); - id_defined_functions.push_back(id); - - shared_ptr > ptr; - - ParameterHandler internal_prm; - dealii::Functions::ParsedFunction::declare_parameters(internal_prm, n_components); - internal_prm.set("Function expression", id_func[1]); - internal_prm.set("Function constants", constants); - ptr = SP(new dealii::Functions::ParsedFunction(n_components)); - ptr->parse_parameters(internal_prm); - - id_functions[id] = ptr; - } - } - - // check if the number of ids defined in id_components and id_functions are the same - Assert(ids.size() == id_defined_functions.size(), - ExcMessage("Ids associated to components and to functions are not the same.")); - -} - -template -shared_ptr > ParsedMappedFunctions::get_mapped_function(const unsigned int &id) const -{ - Assert( mapped_functions.find(id) != mapped_functions.end(), - ExcIdNotFound(id)); - return mapped_functions.at(id).second; -} - -template -ComponentMask ParsedMappedFunctions::get_mapped_mask(const unsigned int &id) const -{ - Assert( mapped_functions.find(id) != mapped_functions.end(), - ExcIdNotFound(id)); - return mapped_functions.at(id).first; -} - -template -std::vector ParsedMappedFunctions::get_mapped_ids() const -{ - return ids; -} - -template -void ParsedMappedFunctions::declare_parameters(ParameterHandler &prm) -{ - if (str_component_names != "") - add_parameter(prm, &_component_names, "Known component names", str_component_names, - Patterns::List(Patterns::Anything(),1,n_components,","), - "These variables can be used to set the corrisponding component mask," - "instead of specifying each component number"); - - else - { - std::vector cn(n_components, "u"); - add_parameter(prm, &_component_names, "Known component names", print(cn), - Patterns::List(Patterns::Anything(),1,n_components,","), - "These variables can be used to set the corrisponding component mask," - "instead of specifying each component number"); - - } - add_parameter(prm, &str_id_components, "IDs and component masks", str_id_components, - Patterns::Anything(), - "Pattern to be used" - "id followed by '=' component masks separated by ';'" - "each couple of id and mask is separated by '%'" - "0=0;1;2 % 4=u;p % 2=3 % 5=ALL" - "You can specify the components either by numbers " - "or by the corrisponding variable name, which are parsed at" - "construction time." - "The keyword 'ALL' means all the components."); - - add_parameter(prm, &str_id_functions, "IDs and expressions", str_id_functions, - Patterns::Anything(), - "Pattern to be used" - "id followed by '=' component separated by ';'" - "each couple of id and expression _id_functions separated by '%'" - "0=x;y;k;0 % 4=sin(x);cos(y);2*k;1 % 2=0;0;0;0" - "If it is left empty, a ZeroFunction(n_components)" - "is applied on the parsed ids in the components. "); - - add_parameter(prm, &str_constants , "Used constants", str_constants, Patterns::Anything(), - "Costants which are employed in the definitions of the function expressions." - "The pattern to be used is" - "constant_name=value , other_constant=other_value"); - -} - -template -bool ParsedMappedFunctions::acts_on_id(unsigned int &id) const -{ - return id_components.find(id) != id_components.end(); -} - -template -void ParsedMappedFunctions::set_time(const double &t) -{ - typedef typename std::map > >::iterator it_type; - for (it_type it=id_functions.begin(); it != id_functions.end(); ++it) - it->second->set_time(t); -} - #endif diff --git a/source/parsed_mapped_functions.cc b/source/parsed_mapped_functions.cc new file mode 100644 index 00000000..866ab9b9 --- /dev/null +++ b/source/parsed_mapped_functions.cc @@ -0,0 +1,288 @@ +#include "parsed_mapped_functions.h" + +template +ParsedMappedFunctions::ParsedMappedFunctions(const std::string &parsed_name, + const std::string &parsed_component_names, + const std::string &parsed_id_components, + const std::string &parsed_id_functions, + const std::string &parsed_constants): + ParameterAcceptor(parsed_name), + name (parsed_name), + str_id_components (parsed_id_components), + str_id_functions (parsed_id_functions), + str_component_names (parsed_component_names), + str_constants (parsed_constants) +{} + +template +void ParsedMappedFunctions::add_normal_components() +{ + std::vector var = unique(_component_names); + for (unsigned int i=0; i1) + { + _normal_components.push_back(var[i]+"N"); + int pos = std::find(_component_names.begin(),_component_names.end(), var[i]) - _component_names.begin(); + std::pair nc (pos, var[i]+"N"); + normal_components.push_back(nc); + } + } +} + +template +void ParsedMappedFunctions::parse_parameters_call_back() +{ + add_normal_components(); + _all_components = _component_names; + for (unsigned int i=0; i<_normal_components.size(); ++i) + { + _all_components.push_back(_normal_components[i]); + } + split_id_components(str_id_components); + split_id_functions(str_id_functions,str_constants); + AssertDimension(id_components.size(), id_functions.size()); + + typedef std::map::iterator it_type; + for (it_type it=id_components.begin(); it != id_components.end(); ++it) + { + std::pair > > mapped(it->second, id_functions[it->first]); + + mapped_functions[it->first] = mapped; + + } + +} + +template +void ParsedMappedFunctions::split_id_components(const std::string &parsed_idcomponents) +{ + std::vector idcomponents; + + idcomponents = Utilities::split_string_list(parsed_idcomponents, '%'); + + for (unsigned int i=0; i id_comp; + std::vector components; + std::vector mask(n_components,false); + + id_comp = Utilities::split_string_list(idcomponents[i], '='); + + unsigned int id = Utilities::string_to_int(id_comp[0]); + ids.push_back(id); + + components = Utilities::split_string_list(id_comp[1], ';'); + Assert(components.size() <= n_components, + ExcMessage("Wrong number of components specified for id " + id_comp[0])); + for (unsigned int c=0; c +void ParsedMappedFunctions::split_id_functions(const std::string &parsed_idfunctions, + const std::string &constants) +{ + std::vector id_defined_functions; + + // if it is empty a ZeroFunction(n_components) is applied on the + // parsed ids in the components + if (parsed_idfunctions == "") + { + for (unsigned int i=0; i > ptr; + + ParameterHandler internal_prm; + dealii::Functions::ParsedFunction::declare_parameters(internal_prm, n_components); + ptr = SP(new dealii::Functions::ParsedFunction(n_components)); + ptr->parse_parameters(internal_prm); + + id_functions[ids[i]] = ptr; + } + } + else + { + + + std::vector idfunctions; + idfunctions = Utilities::split_string_list(parsed_idfunctions, '%'); + + for (unsigned int i=0; i id_func; + + id_func = Utilities::split_string_list(idfunctions[i], '='); + + unsigned int id = Utilities::string_to_int(id_func[0]); + + // check if the current id is also defined in id_components + Assert((std::find(ids.begin(), ids.end(), id) != ids.end()), + ExcIdNotMatch(id)); + id_defined_functions.push_back(id); + + shared_ptr > ptr; + + ParameterHandler internal_prm; + dealii::Functions::ParsedFunction::declare_parameters(internal_prm, n_components); + internal_prm.set("Function expression", id_func[1]); + internal_prm.set("Function constants", constants); + ptr = SP(new dealii::Functions::ParsedFunction(n_components)); + ptr->parse_parameters(internal_prm); + + id_functions[id] = ptr; + } + } + + // check if the number of ids defined in id_components and id_functions are the same + Assert(ids.size() == id_defined_functions.size(), + ExcMessage("Ids associated to components and to functions are not the same.")); + +} + +template +shared_ptr > ParsedMappedFunctions::get_mapped_function(const unsigned int &id) const +{ + Assert( mapped_functions.find(id) != mapped_functions.end(), + ExcIdNotFound(id)); + return mapped_functions.at(id).second; +} + +template +ComponentMask ParsedMappedFunctions::get_mapped_mask(const unsigned int &id) const +{ + Assert( mapped_functions.find(id) != mapped_functions.end(), + ExcIdNotFound(id)); + return mapped_functions.at(id).first; +} + +template +std::vector ParsedMappedFunctions::get_mapped_ids() const +{ + return ids; +} + +template +std::vector ParsedMappedFunctions::get_mapped_normal_ids() const +{ + return normal_ids; +} + +template +void ParsedMappedFunctions::declare_parameters(ParameterHandler &prm) +{ + if (str_component_names != "") + add_parameter(prm, &_component_names, "Known component names", str_component_names, + Patterns::List(Patterns::Anything(),1,n_components,","), + "These variables can be used to set the corrisponding component mask, " + "instead of specifying each component number"); + + else + { + std::vector cn(n_components, "u"); + add_parameter(prm, &_component_names, "Known component names", print(cn), + Patterns::List(Patterns::Anything(),1,n_components,","), + "These variables can be used to set the corrisponding component mask, " + "instead of specifying each component number"); + + } + add_parameter(prm, &str_id_components, "IDs and component masks", str_id_components, + Patterns::Anything(), + "Pattern to be used " + "id followed by '=' component masks separated by ';' " + "each couple of id and mask is separated by '%' " + "0=0;1;2 % 4=u;p % 2=3 % 5=ALL " + "You can specify the components either by numbers " + "or by the corrisponding variable name, which are parsed at " + "construction time. " + "The keyword 'ALL' means all the components. " + "Normal component is referred with suffix N " + "e.g. uN means the normal component of u. " + "note that the normal component can be set only " + "for a vector variable."); + + add_parameter(prm, &str_id_functions, "IDs and expressions", str_id_functions, + Patterns::Anything(), + "Pattern to be used " + "id followed by '=' component separated by ';' " + "each couple of id and expression _id_functions separated by '%' " + "0=x;y;k;0 % 4=sin(x);cos(y);2*k;1 % 2=0;0;0;0 " + "If it is left empty, a ZeroFunction(n_components) " + "is applied on the parsed ids in the components. "); + + add_parameter(prm, &str_constants , "Used constants", str_constants, Patterns::Anything(), + "Costants which are employed in the definitions of the function expressions. " + "The pattern to be used is " + "constant_name=value , other_constant=other_value"); + +} + +template +bool ParsedMappedFunctions::acts_on_id(unsigned int &id) const +{ + return id_components.find(id) != id_components.end(); +} + +template +void ParsedMappedFunctions::set_time(const double &t) +{ + typedef typename std::map > >::iterator it_type; + for (it_type it=id_functions.begin(); it != id_functions.end(); ++it) + it->second->set_time(t); +} + +template class ParsedMappedFunctions<1,1>; + +template class ParsedMappedFunctions<2,1>; +template class ParsedMappedFunctions<2,2>; +template class ParsedMappedFunctions<2,3>; +template class ParsedMappedFunctions<2,4>; +template class ParsedMappedFunctions<2,5>; + +template class ParsedMappedFunctions<3,1>; +template class ParsedMappedFunctions<3,2>; +template class ParsedMappedFunctions<3,3>; +template class ParsedMappedFunctions<3,4>; +template class ParsedMappedFunctions<3,5>; +template class ParsedMappedFunctions<3,6>; diff --git a/tests/parameters/parsed_mapped_functions_14.prm b/tests/parameters/parsed_mapped_functions_14.prm new file mode 100644 index 00000000..bb3756d4 --- /dev/null +++ b/tests/parameters/parsed_mapped_functions_14.prm @@ -0,0 +1,28 @@ +# Listing of Parameters +# --------------------- +subsection Mapped Functions + # Pattern to be usedid followed by '=' component masks separated by ';'each + # couple of id and mask is separated by '%'0=0;1;2 % 4=u;p % 2=3 % 5=ALLYou + # can specify the components either by numbers or by the corrisponding + # variable name, which are parsed atconstruction time.The keyword 'ALL' + # means all the components. + set IDs and component masks = 0=uN % 1=1 % 6=u;p + + # Pattern to be usedid followed by '=' component separated by ';'each couple + # of id and expression _id_functions separated by '%'0=x;y;k;0 % + # 4=sin(x);cos(y);2*k;1 % 2=0;0;0;0If it is left empty, a + # ZeroFunction(n_components)is applied on the parsed ids in the + # components. + set IDs and expressions = 0=0;0;0 % 1=0;0;0 % 6=y*k;0;k + + # These variables can be used to set the corrisponding component + # mask,instead of specifying each component number + set Known component names = u,u,p + + # Costants which are employed in the definitions of the function + # expressions.The pattern to be used isconstant_name=value , + # other_constant=other_value + set Used constants = k=1 +end + + diff --git a/tests/parsed_dirichlet_bcs_05.cc b/tests/parsed_dirichlet_bcs_05.cc new file mode 100644 index 00000000..3e13e5e5 --- /dev/null +++ b/tests/parsed_dirichlet_bcs_05.cc @@ -0,0 +1,100 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2007 - 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + + +// check the creation of no-flux boundary conditions for a finite +// element that consists of only a single set of vector components +// (i.e. it has dim components) + +#include "tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "utilities.h" +#include "parameter_acceptor.h" +#include "parsed_dirichlet_bcs.h" + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + + deallog << "FE=" << fe.get_name() + << std::endl; + + ConstraintMatrix cm; + std::set boundary_ids; + // for (unsigned int j=0; j::faces_per_cell; ++j) + // boundary_ids.insert (j); + + // VectorTools::compute_no_normal_flux_constraints (dof, 0, boundary_ids, cm); + ParsedDirichletBCs parsed_dirichlet("ParsedDirichletBCs", + (dim==2?"u,u":"u,u,u"), + (dim==2?"0=uN % 1=uN % 2=uN % 3=uN" :"0=uN % 1=uN % 2=uN % 3=uN % 4=uN % 5=uN")); + + + ParameterAcceptor::initialize(); + parsed_dirichlet.compute_no_normal_flux_constraints(dof,cm); + + cm.print (deallog.get_file_stream ()); +} + + +template +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_id (i); + + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + initlog(); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + //ParameterAcceptor::prm.log_parameters(deallog); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/parsed_dirichlet_bcs_05.output b/tests/parsed_dirichlet_bcs_05.output new file mode 100644 index 00000000..fd1c370f --- /dev/null +++ b/tests/parsed_dirichlet_bcs_05.output @@ -0,0 +1,1765 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 9 = 0 + 12 = 0 + 19 = 0 + 22 = 0 + 23 = 0 + 24 = 0 + 28 = 0 + 30 = 0 + 36 = 0 + 37 = 0 + 39 = 0 + 41 = 0 + 44 = 0 + 47 = 0 + 48 = 0 + 49 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 8 = 0 + 13 = 0 + 19 = 0 + 25 = 0 + 30 = 0 + 34 = 0 + 51 = 0 + 57 = 0 + 62 = 0 + 63 = 0 + 64 = 0 + 66 = 0 + 69 = 0 + 82 = 0 + 84 = 0 + 90 = 0 + 94 = 0 + 110 = 0 + 111 = 0 + 113 = 0 + 114 = 0 + 119 = 0 + 123 = 0 + 127 = 0 + 138 = 0 + 140 = 0 + 147 = 0 + 151 = 0 + 154 = 0 + 155 = 0 + 156 = 0 + 159 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 8 = 0 + 9 = 0 + 18 = 0 + 19 = 0 + 33 = 0 + 42 = 0 + 43 = 0 + 56 = 0 + 60 = 0 + 61 = 0 + 99 = 0 + 108 = 0 + 109 = 0 + 122 = 0 + 123 = 0 + 124 = 0 + 126 = 0 + 127 = 0 + 132 = 0 + 133 = 0 + 164 = 0 + 166 = 0 + 167 = 0 + 182 = 0 + 186 = 0 + 187 = 0 + 224 = 0 + 225 = 0 + 227 = 0 + 228 = 0 + 229 = 0 + 238 = 0 + 239 = 0 + 249 = 0 + 256 = 0 + 257 = 0 + 284 = 0 + 286 = 0 + 287 = 0 + 303 = 0 + 310 = 0 + 311 = 0 + 320 = 0 + 321 = 0 + 322 = 0 + 323 = 0 + 328 = 0 + 329 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 25 = 0 + 26 = 0 + 29 = 0 + 31 = 0 + 36 = 0 + 38 = 0 + 41 = 0 + 42 = 0 + 50 = 0 + 54 = 0 + 55 = 0 + 58 = 0 + 60 = 0 + 67 = 0 + 72 = 0 + 82 = 0 + 83 = 0 + 86 = 0 + 88 = 0 + 93 = 0 + 94 = 0 + 95 = 0 + 96 = 0 + 98 = 0 + 99 = 0 + 100 = 0 + 102 = 0 + 107 = 0 + 111 = 0 + 113 = 0 + 114 = 0 + 118 = 0 + 123 = 0 + 124 = 0 + 126 = 0 + 132 = 0 + 135 = 0 + 137 = 0 + 140 = 0 + 141 = 0 + 149 = 0 + 153 = 0 + 154 = 0 + 155 = 0 + 157 = 0 + 158 = 0 + 159 = 0 + 160 = 0 + 163 = 0 + 166 = 0 + 167 = 0 + 169 = 0 + 171 = 0 + 180 = 0 + 181 = 0 + 184 = 0 + 187 = 0 + 191 = 0 + 195 = 0 + 197 = 0 + 198 = 0 + 202 = 0 + 203 = 0 + 205 = 0 + 207 = 0 + 208 = 0 + 209 = 0 + 210 = 0 + 211 = 0 + 216 = 0 + 220 = 0 + 222 = 0 + 223 = 0 + 225 = 0 + 226 = 0 + 229 = 0 + 231 = 0 + 238 = 0 + 243 = 0 + 252 = 0 + 253 = 0 + 254 = 0 + 256 = 0 + 257 = 0 + 258 = 0 + 260 = 0 + 263 = 0 + 265 = 0 + 266 = 0 + 269 = 0 + 270 = 0 + 272 = 0 + 275 = 0 + 278 = 0 + 280 = 0 + 285 = 0 + 286 = 0 + 288 = 0 + 294 = 0 + 298 = 0 + 299 = 0 + 302 = 0 + 303 = 0 + 304 = 0 + 305 = 0 + 306 = 0 + 308 = 0 + 311 = 0 + 312 = 0 + 314 = 0 + 315 = 0 + 324 = 0 + 325 = 0 + 328 = 0 + 331 = 0 + 333 = 0 + 335 = 0 + 338 = 0 + 341 = 0 + 342 = 0 + 343 = 0 + 344 = 0 + 346 = 0 + 347 = 0 + 349 = 0 + 350 = 0 + 354 = 0 + 358 = 0 + 360 = 0 + 361 = 0 + 365 = 0 + 366 = 0 + 368 = 0 + 370 = 0 + 371 = 0 + 372 = 0 + 373 = 0 + 374 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 24 = 0 + 26 = 0 + 29 = 0 + 31 = 0 + 32 = 0 + 35 = 0 + 36 = 0 + 43 = 0 + 48 = 0 + 49 = 0 + 52 = 0 + 54 = 0 + 60 = 0 + 67 = 0 + 74 = 0 + 82 = 0 + 83 = 0 + 86 = 0 + 88 = 0 + 95 = 0 + 97 = 0 + 98 = 0 + 101 = 0 + 106 = 0 + 112 = 0 + 121 = 0 + 128 = 0 + 135 = 0 + 137 = 0 + 140 = 0 + 141 = 0 + 147 = 0 + 149 = 0 + 152 = 0 + 155 = 0 + 156 = 0 + 165 = 0 + 171 = 0 + 182 = 0 + 191 = 0 + 197 = 0 + 200 = 0 + 218 = 0 + 225 = 0 + 226 = 0 + 229 = 0 + 231 = 0 + 237 = 0 + 244 = 0 + 249 = 0 + 250 = 0 + 253 = 0 + 255 = 0 + 261 = 0 + 268 = 0 + 280 = 0 + 289 = 0 + 295 = 0 + 304 = 0 + 315 = 0 + 321 = 0 + 330 = 0 + 336 = 0 + 376 = 0 + 377 = 0 + 380 = 0 + 382 = 0 + 389 = 0 + 391 = 0 + 392 = 0 + 395 = 0 + 400 = 0 + 406 = 0 + 415 = 0 + 422 = 0 + 429 = 0 + 430 = 0 + 431 = 0 + 432 = 0 + 434 = 0 + 435 = 0 + 436 = 0 + 438 = 0 + 441 = 0 + 443 = 0 + 445 = 0 + 446 = 0 + 449 = 0 + 450 = 0 + 454 = 0 + 459 = 0 + 460 = 0 + 462 = 0 + 465 = 0 + 469 = 0 + 476 = 0 + 485 = 0 + 491 = 0 + 494 = 0 + 512 = 0 + 519 = 0 + 521 = 0 + 522 = 0 + 525 = 0 + 527 = 0 + 530 = 0 + 531 = 0 + 537 = 0 + 540 = 0 + 548 = 0 + 556 = 0 + 565 = 0 + 571 = 0 + 580 = 0 + 591 = 0 + 592 = 0 + 594 = 0 + 597 = 0 + 601 = 0 + 606 = 0 + 607 = 0 + 609 = 0 + 612 = 0 + 616 = 0 + 651 = 0 + 654 = 0 + 660 = 0 + 663 = 0 + 675 = 0 + 677 = 0 + 680 = 0 + 681 = 0 + 687 = 0 + 689 = 0 + 692 = 0 + 695 = 0 + 696 = 0 + 705 = 0 + 711 = 0 + 722 = 0 + 731 = 0 + 737 = 0 + 740 = 0 + 758 = 0 + 765 = 0 + 766 = 0 + 767 = 0 + 769 = 0 + 770 = 0 + 771 = 0 + 772 = 0 + 775 = 0 + 777 = 0 + 779 = 0 + 782 = 0 + 784 = 0 + 785 = 0 + 786 = 0 + 793 = 0 + 795 = 0 + 796 = 0 + 799 = 0 + 801 = 0 + 808 = 0 + 812 = 0 + 820 = 0 + 821 = 0 + 823 = 0 + 827 = 0 + 829 = 0 + 830 = 0 + 835 = 0 + 838 = 0 + 844 = 0 + 848 = 0 + 855 = 0 + 861 = 0 + 870 = 0 + 876 = 0 + 915 = 0 + 916 = 0 + 919 = 0 + 921 = 0 + 928 = 0 + 930 = 0 + 931 = 0 + 934 = 0 + 936 = 0 + 943 = 0 + 952 = 0 + 958 = 0 + 961 = 0 + 967 = 0 + 977 = 0 + 983 = 0 + 986 = 0 + 1004 = 0 + 1011 = 0 + 1013 = 0 + 1014 = 0 + 1017 = 0 + 1019 = 0 + 1022 = 0 + 1023 = 0 + 1029 = 0 + 1032 = 0 + 1040 = 0 + 1048 = 0 + 1049 = 0 + 1051 = 0 + 1055 = 0 + 1057 = 0 + 1058 = 0 + 1063 = 0 + 1066 = 0 + 1072 = 0 + 1076 = 0 + 1083 = 0 + 1084 = 0 + 1085 = 0 + 1086 = 0 + 1087 = 0 + 1089 = 0 + 1091 = 0 + 1093 = 0 + 1094 = 0 + 1095 = 0 + 1099 = 0 + 1101 = 0 + 1102 = 0 + 1104 = 0 + 1108 = 0 + 1112 = 0 + 1143 = 0 + 1146 = 0 + 1152 = 0 + 1155 = 0 + 1168 = 0 + 1174 = 0 + 1177 = 0 + 1183 = 0 + 1191 = 0 + 1192 = 0 + 1194 = 0 + 1198 = 0 + 1200 = 0 + 1201 = 0 + 1203 = 0 + 1207 = 0 + 1215 = 0 + 1216 = 0 + 1219 = 0 + 1221 = 0 + 1227 = 0 + 1234 = 0 + 1239 = 0 + 1240 = 0 + 1243 = 0 + 1245 = 0 + 1251 = 0 + 1258 = 0 + 1270 = 0 + 1279 = 0 + 1285 = 0 + 1294 = 0 + 1305 = 0 + 1311 = 0 + 1320 = 0 + 1326 = 0 + 1365 = 0 + 1366 = 0 + 1367 = 0 + 1369 = 0 + 1370 = 0 + 1371 = 0 + 1373 = 0 + 1376 = 0 + 1377 = 0 + 1379 = 0 + 1382 = 0 + 1384 = 0 + 1385 = 0 + 1388 = 0 + 1389 = 0 + 1390 = 0 + 1393 = 0 + 1395 = 0 + 1401 = 0 + 1408 = 0 + 1415 = 0 + 1420 = 0 + 1421 = 0 + 1424 = 0 + 1427 = 0 + 1429 = 0 + 1430 = 0 + 1433 = 0 + 1435 = 0 + 1444 = 0 + 1451 = 0 + 1455 = 0 + 1457 = 0 + 1460 = 0 + 1461 = 0 + 1463 = 0 + 1466 = 0 + 1469 = 0 + 1470 = 0 + 1476 = 0 + 1487 = 0 + 1493 = 0 + 1496 = 0 + 1499 = 0 + 1511 = 0 + 1516 = 0 + 1525 = 0 + 1531 = 0 + 1540 = 0 + 1551 = 0 + 1552 = 0 + 1554 = 0 + 1557 = 0 + 1561 = 0 + 1566 = 0 + 1567 = 0 + 1569 = 0 + 1572 = 0 + 1576 = 0 + 1611 = 0 + 1614 = 0 + 1620 = 0 + 1623 = 0 + 1636 = 0 + 1637 = 0 + 1640 = 0 + 1643 = 0 + 1645 = 0 + 1646 = 0 + 1649 = 0 + 1651 = 0 + 1660 = 0 + 1667 = 0 + 1671 = 0 + 1672 = 0 + 1673 = 0 + 1674 = 0 + 1676 = 0 + 1677 = 0 + 1679 = 0 + 1681 = 0 + 1682 = 0 + 1685 = 0 + 1686 = 0 + 1687 = 0 + 1689 = 0 + 1692 = 0 + 1696 = 0 + 1703 = 0 + 1709 = 0 + 1712 = 0 + 1715 = 0 + 1727 = 0 + 1731 = 0 + 1733 = 0 + 1734 = 0 + 1736 = 0 + 1739 = 0 + 1740 = 0 + 1743 = 0 + 1751 = 0 + 1755 = 0 + 1761 = 0 + 1770 = 0 + 1776 = 0 + 1815 = 0 + 1816 = 0 + 1819 = 0 + 1821 = 0 + 1828 = 0 + 1830 = 0 + 1831 = 0 + 1834 = 0 + 1836 = 0 + 1843 = 0 + 1852 = 0 + 1858 = 0 + 1861 = 0 + 1867 = 0 + 1875 = 0 + 1877 = 0 + 1880 = 0 + 1881 = 0 + 1883 = 0 + 1886 = 0 + 1889 = 0 + 1890 = 0 + 1896 = 0 + 1907 = 0 + 1913 = 0 + 1916 = 0 + 1919 = 0 + 1931 = 0 + 1935 = 0 + 1936 = 0 + 1937 = 0 + 1939 = 0 + 1940 = 0 + 1941 = 0 + 1943 = 0 + 1946 = 0 + 1948 = 0 + 1949 = 0 + 1950 = 0 + 1951 = 0 + 1954 = 0 + 1956 = 0 + 1963 = 0 + 1967 = 0 + 1972 = 0 + 1973 = 0 + 1976 = 0 + 1978 = 0 + 1979 = 0 + 1981 = 0 + 1987 = 0 + 1991 = 0 + 2019 = 0 + 2022 = 0 + 2028 = 0 + 2031 = 0 + 2044 = 0 + 2050 = 0 + 2053 = 0 + 2059 = 0 + 2067 = 0 + 2068 = 0 + 2070 = 0 + 2074 = 0 + 2076 = 0 + 2077 = 0 + 2079 = 0 + 2083 = 0 + 2093 = 0 + 2096 = 0 + 2099 = 0 + 2111 = 0 + 2115 = 0 + 2117 = 0 + 2118 = 0 + 2120 = 0 + 2123 = 0 + 2124 = 0 + 2127 = 0 + 2135 = 0 + 2140 = 0 + 2141 = 0 + 2144 = 0 + 2146 = 0 + 2147 = 0 + 2149 = 0 + 2155 = 0 + 2159 = 0 + 2163 = 0 + 2164 = 0 + 2165 = 0 + 2166 = 0 + 2168 = 0 + 2170 = 0 + 2171 = 0 + 2172 = 0 + 2173 = 0 + 2175 = 0 + 2179 = 0 + 2183 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 24 = 0 + 28 = 0 + 25 = 0 + 29 = 0 + 34 = 0 + 35 = 0 + 38 = 0 + 40 = 0 + 39 = 0 + 41 = 0 + 46 = 0 + 47 = 0 + 48 = 0 + 49 = 0 + 62 = 0 + 63 = 0 + 72 = 0 + 74 = 0 + 73 = 0 + 75 = 0 + 80 = 0 + 81 = 0 + 84 = 0 + 85 = 0 + 96 = 0 + 97 = 0 + 98 = 0 + 99 = 0 + 124 = 0 + 125 = 0 + 126 = 0 + 127 = 0 + 152 = 0 + 153 = 0 + 154 = 0 + 155 = 0 + 193 = 0 + 194 = 0 + 197 = 0 + 199 = 0 + 208 = 0 + 209 = 0 + 212 = 0 + 214 = 0 + 213 = 0 + 215 = 0 + 220 = 0 + 221 = 0 + 230 = 0 + 231 = 0 + 242 = 0 + 243 = 0 + 268 = 0 + 269 = 0 + 270 = 0 + 271 = 0 + 296 = 0 + 297 = 0 + 298 = 0 + 299 = 0 + 336 = 0 + 338 = 0 + 341 = 0 + 342 = 0 + 348 = 0 + 352 = 0 + 349 = 0 + 353 = 0 + 358 = 0 + 359 = 0 + 364 = 0 + 365 = 0 + 366 = 0 + 367 = 0 + 384 = 0 + 385 = 0 + 396 = 0 + 397 = 0 + 398 = 0 + 399 = 0 + 440 = 0 + 441 = 0 + 442 = 0 + 443 = 0 + 482 = 0 + 490 = 0 + 491 = 0 + 496 = 0 + 497 = 0 + 548 = 0 + 549 = 0 + 550 = 0 + 551 = 0 + 588 = 0 + 589 = 0 + 592 = 0 + 594 = 0 + 600 = 0 + 601 = 0 + 614 = 0 + 615 = 0 + 624 = 0 + 626 = 0 + 625 = 0 + 627 = 0 + 632 = 0 + 633 = 0 + 636 = 0 + 637 = 0 + 648 = 0 + 649 = 0 + 650 = 0 + 651 = 0 + 676 = 0 + 677 = 0 + 678 = 0 + 679 = 0 + 733 = 0 + 746 = 0 + 747 = 0 + 758 = 0 + 759 = 0 + 784 = 0 + 785 = 0 + 786 = 0 + 787 = 0 + 840 = 0 + 846 = 0 + 847 = 0 + 864 = 0 + 865 = 0 + 876 = 0 + 877 = 0 + 878 = 0 + 879 = 0 + 1030 = 0 + 1031 = 0 + 1034 = 0 + 1036 = 0 + 1045 = 0 + 1046 = 0 + 1049 = 0 + 1051 = 0 + 1050 = 0 + 1052 = 0 + 1057 = 0 + 1058 = 0 + 1067 = 0 + 1068 = 0 + 1079 = 0 + 1080 = 0 + 1105 = 0 + 1106 = 0 + 1107 = 0 + 1108 = 0 + 1133 = 0 + 1134 = 0 + 1135 = 0 + 1136 = 0 + 1173 = 0 + 1174 = 0 + 1175 = 0 + 1176 = 0 + 1178 = 0 + 1179 = 0 + 1180 = 0 + 1182 = 0 + 1185 = 0 + 1189 = 0 + 1186 = 0 + 1190 = 0 + 1193 = 0 + 1195 = 0 + 1194 = 0 + 1196 = 0 + 1201 = 0 + 1202 = 0 + 1203 = 0 + 1204 = 0 + 1211 = 0 + 1212 = 0 + 1221 = 0 + 1223 = 0 + 1222 = 0 + 1224 = 0 + 1227 = 0 + 1228 = 0 + 1233 = 0 + 1234 = 0 + 1235 = 0 + 1236 = 0 + 1249 = 0 + 1250 = 0 + 1251 = 0 + 1252 = 0 + 1277 = 0 + 1278 = 0 + 1279 = 0 + 1280 = 0 + 1319 = 0 + 1327 = 0 + 1328 = 0 + 1333 = 0 + 1334 = 0 + 1385 = 0 + 1386 = 0 + 1387 = 0 + 1388 = 0 + 1425 = 0 + 1427 = 0 + 1428 = 0 + 1431 = 0 + 1435 = 0 + 1432 = 0 + 1436 = 0 + 1441 = 0 + 1442 = 0 + 1443 = 0 + 1444 = 0 + 1455 = 0 + 1456 = 0 + 1461 = 0 + 1462 = 0 + 1463 = 0 + 1464 = 0 + 1493 = 0 + 1494 = 0 + 1495 = 0 + 1496 = 0 + 1534 = 0 + 1547 = 0 + 1548 = 0 + 1559 = 0 + 1560 = 0 + 1585 = 0 + 1586 = 0 + 1587 = 0 + 1588 = 0 + 1641 = 0 + 1642 = 0 + 1644 = 0 + 1647 = 0 + 1648 = 0 + 1655 = 0 + 1656 = 0 + 1665 = 0 + 1667 = 0 + 1666 = 0 + 1668 = 0 + 1671 = 0 + 1672 = 0 + 1677 = 0 + 1678 = 0 + 1679 = 0 + 1680 = 0 + 1693 = 0 + 1694 = 0 + 1695 = 0 + 1696 = 0 + 1830 = 0 + 1833 = 0 + 1834 = 0 + 1845 = 0 + 1846 = 0 + 1851 = 0 + 1852 = 0 + 1853 = 0 + 1854 = 0 + 1911 = 0 + 1913 = 0 + 1916 = 0 + 1917 = 0 + 1923 = 0 + 1927 = 0 + 1924 = 0 + 1928 = 0 + 1933 = 0 + 1934 = 0 + 1939 = 0 + 1940 = 0 + 1941 = 0 + 1942 = 0 + 1959 = 0 + 1960 = 0 + 1971 = 0 + 1972 = 0 + 1973 = 0 + 1974 = 0 + 2015 = 0 + 2016 = 0 + 2017 = 0 + 2018 = 0 + 2057 = 0 + 2065 = 0 + 2066 = 0 + 2071 = 0 + 2072 = 0 + 2123 = 0 + 2124 = 0 + 2125 = 0 + 2126 = 0 + 2163 = 0 + 2164 = 0 + 2165 = 0 + 2167 = 0 + 2168 = 0 + 2169 = 0 + 2170 = 0 + 2173 = 0 + 2175 = 0 + 2179 = 0 + 2176 = 0 + 2180 = 0 + 2185 = 0 + 2186 = 0 + 2189 = 0 + 2191 = 0 + 2190 = 0 + 2192 = 0 + 2193 = 0 + 2194 = 0 + 2207 = 0 + 2208 = 0 + 2211 = 0 + 2213 = 0 + 2212 = 0 + 2214 = 0 + 2219 = 0 + 2220 = 0 + 2223 = 0 + 2224 = 0 + 2225 = 0 + 2226 = 0 + 2251 = 0 + 2252 = 0 + 2253 = 0 + 2254 = 0 + 2267 = 0 + 2268 = 0 + 2269 = 0 + 2270 = 0 + 2308 = 0 + 2309 = 0 + 2311 = 0 + 2317 = 0 + 2318 = 0 + 2321 = 0 + 2323 = 0 + 2322 = 0 + 2324 = 0 + 2333 = 0 + 2334 = 0 + 2339 = 0 + 2340 = 0 + 2359 = 0 + 2360 = 0 + 2361 = 0 + 2362 = 0 + 2375 = 0 + 2376 = 0 + 2377 = 0 + 2378 = 0 + 2415 = 0 + 2421 = 0 + 2422 = 0 + 2439 = 0 + 2440 = 0 + 2451 = 0 + 2452 = 0 + 2453 = 0 + 2454 = 0 + 2604 = 0 + 2605 = 0 + 2608 = 0 + 2610 = 0 + 2611 = 0 + 2624 = 0 + 2625 = 0 + 2628 = 0 + 2630 = 0 + 2629 = 0 + 2631 = 0 + 2636 = 0 + 2637 = 0 + 2640 = 0 + 2641 = 0 + 2642 = 0 + 2643 = 0 + 2668 = 0 + 2669 = 0 + 2670 = 0 + 2671 = 0 + 2713 = 0 + 2723 = 0 + 2724 = 0 + 2729 = 0 + 2730 = 0 + 2749 = 0 + 2750 = 0 + 2751 = 0 + 2752 = 0 + 2795 = 0 + 2803 = 0 + 2804 = 0 + 2809 = 0 + 2810 = 0 + 2861 = 0 + 2862 = 0 + 2863 = 0 + 2864 = 0 + 2901 = 0 + 2903 = 0 + 2904 = 0 + 2907 = 0 + 2911 = 0 + 2908 = 0 + 2912 = 0 + 2917 = 0 + 2918 = 0 + 2919 = 0 + 2920 = 0 + 2931 = 0 + 2932 = 0 + 2937 = 0 + 2938 = 0 + 2939 = 0 + 2940 = 0 + 2969 = 0 + 2970 = 0 + 2971 = 0 + 2972 = 0 + 3010 = 0 + 3011 = 0 + 3013 = 0 + 3019 = 0 + 3020 = 0 + 3023 = 0 + 3025 = 0 + 3024 = 0 + 3026 = 0 + 3035 = 0 + 3036 = 0 + 3041 = 0 + 3042 = 0 + 3061 = 0 + 3062 = 0 + 3063 = 0 + 3064 = 0 + 3077 = 0 + 3078 = 0 + 3079 = 0 + 3080 = 0 + 3117 = 0 + 3118 = 0 + 3119 = 0 + 3120 = 0 + 3121 = 0 + 3123 = 0 + 3127 = 0 + 3124 = 0 + 3128 = 0 + 3131 = 0 + 3133 = 0 + 3132 = 0 + 3134 = 0 + 3135 = 0 + 3136 = 0 + 3143 = 0 + 3144 = 0 + 3147 = 0 + 3149 = 0 + 3148 = 0 + 3150 = 0 + 3153 = 0 + 3154 = 0 + 3155 = 0 + 3156 = 0 + 3169 = 0 + 3170 = 0 + 3171 = 0 + 3172 = 0 + 3185 = 0 + 3186 = 0 + 3187 = 0 + 3188 = 0 + 3306 = 0 + 3309 = 0 + 3310 = 0 + 3321 = 0 + 3322 = 0 + 3327 = 0 + 3328 = 0 + 3329 = 0 + 3330 = 0 + 3388 = 0 + 3398 = 0 + 3399 = 0 + 3404 = 0 + 3405 = 0 + 3424 = 0 + 3425 = 0 + 3426 = 0 + 3427 = 0 + 3468 = 0 + 3469 = 0 + 3471 = 0 + 3472 = 0 + 3479 = 0 + 3480 = 0 + 3483 = 0 + 3485 = 0 + 3484 = 0 + 3486 = 0 + 3489 = 0 + 3490 = 0 + 3491 = 0 + 3492 = 0 + 3505 = 0 + 3506 = 0 + 3507 = 0 + 3508 = 0 + 3549 = 0 + 3550 = 0 + 3553 = 0 + 3555 = 0 + 3561 = 0 + 3562 = 0 + 3575 = 0 + 3576 = 0 + 3585 = 0 + 3587 = 0 + 3586 = 0 + 3588 = 0 + 3593 = 0 + 3594 = 0 + 3597 = 0 + 3598 = 0 + 3609 = 0 + 3610 = 0 + 3611 = 0 + 3612 = 0 + 3637 = 0 + 3638 = 0 + 3639 = 0 + 3640 = 0 + 3694 = 0 + 3707 = 0 + 3708 = 0 + 3719 = 0 + 3720 = 0 + 3745 = 0 + 3746 = 0 + 3747 = 0 + 3748 = 0 + 3801 = 0 + 3807 = 0 + 3808 = 0 + 3825 = 0 + 3826 = 0 + 3837 = 0 + 3838 = 0 + 3839 = 0 + 3840 = 0 + 3990 = 0 + 3991 = 0 + 3992 = 0 + 3994 = 0 + 3995 = 0 + 3996 = 0 + 3998 = 0 + 4001 = 0 + 4002 = 0 + 4006 = 0 + 4003 = 0 + 4007 = 0 + 4012 = 0 + 4013 = 0 + 4016 = 0 + 4018 = 0 + 4017 = 0 + 4019 = 0 + 4024 = 0 + 4025 = 0 + 4026 = 0 + 4028 = 0 + 4027 = 0 + 4029 = 0 + 4034 = 0 + 4035 = 0 + 4038 = 0 + 4039 = 0 + 4050 = 0 + 4051 = 0 + 4052 = 0 + 4053 = 0 + 4078 = 0 + 4079 = 0 + 4080 = 0 + 4081 = 0 + 4106 = 0 + 4107 = 0 + 4108 = 0 + 4109 = 0 + 4135 = 0 + 4136 = 0 + 4139 = 0 + 4144 = 0 + 4145 = 0 + 4148 = 0 + 4150 = 0 + 4149 = 0 + 4151 = 0 + 4156 = 0 + 4157 = 0 + 4160 = 0 + 4161 = 0 + 4186 = 0 + 4187 = 0 + 4188 = 0 + 4189 = 0 + 4214 = 0 + 4215 = 0 + 4216 = 0 + 4217 = 0 + 4242 = 0 + 4244 = 0 + 4247 = 0 + 4248 = 0 + 4252 = 0 + 4249 = 0 + 4253 = 0 + 4258 = 0 + 4259 = 0 + 4264 = 0 + 4265 = 0 + 4266 = 0 + 4267 = 0 + 4278 = 0 + 4279 = 0 + 4280 = 0 + 4281 = 0 + 4322 = 0 + 4323 = 0 + 4324 = 0 + 4325 = 0 + 4352 = 0 + 4357 = 0 + 4358 = 0 + 4363 = 0 + 4364 = 0 + 4403 = 0 + 4404 = 0 + 4405 = 0 + 4406 = 0 + 4432 = 0 + 4445 = 0 + 4446 = 0 + 4457 = 0 + 4458 = 0 + 4483 = 0 + 4484 = 0 + 4485 = 0 + 4486 = 0 + 4539 = 0 + 4540 = 0 + 4542 = 0 + 4545 = 0 + 4546 = 0 + 4553 = 0 + 4554 = 0 + 4563 = 0 + 4565 = 0 + 4564 = 0 + 4566 = 0 + 4569 = 0 + 4570 = 0 + 4575 = 0 + 4576 = 0 + 4577 = 0 + 4578 = 0 + 4591 = 0 + 4592 = 0 + 4593 = 0 + 4594 = 0 + 4728 = 0 + 4731 = 0 + 4732 = 0 + 4743 = 0 + 4744 = 0 + 4749 = 0 + 4750 = 0 + 4751 = 0 + 4752 = 0 + 4810 = 0 + 4811 = 0 + 4814 = 0 + 4819 = 0 + 4820 = 0 + 4823 = 0 + 4825 = 0 + 4824 = 0 + 4826 = 0 + 4831 = 0 + 4832 = 0 + 4835 = 0 + 4836 = 0 + 4861 = 0 + 4862 = 0 + 4863 = 0 + 4864 = 0 + 4889 = 0 + 4890 = 0 + 4891 = 0 + 4892 = 0 + 4917 = 0 + 4918 = 0 + 4919 = 0 + 4920 = 0 + 4922 = 0 + 4923 = 0 + 4927 = 0 + 4924 = 0 + 4928 = 0 + 4931 = 0 + 4933 = 0 + 4932 = 0 + 4934 = 0 + 4939 = 0 + 4940 = 0 + 4941 = 0 + 4943 = 0 + 4942 = 0 + 4944 = 0 + 4947 = 0 + 4948 = 0 + 4953 = 0 + 4954 = 0 + 4955 = 0 + 4956 = 0 + 4969 = 0 + 4970 = 0 + 4971 = 0 + 4972 = 0 + 4997 = 0 + 4998 = 0 + 4999 = 0 + 5000 = 0 + 5027 = 0 + 5032 = 0 + 5033 = 0 + 5038 = 0 + 5039 = 0 + 5078 = 0 + 5079 = 0 + 5080 = 0 + 5081 = 0 + 5106 = 0 + 5108 = 0 + 5109 = 0 + 5113 = 0 + 5110 = 0 + 5114 = 0 + 5119 = 0 + 5120 = 0 + 5121 = 0 + 5122 = 0 + 5127 = 0 + 5128 = 0 + 5129 = 0 + 5130 = 0 + 5159 = 0 + 5160 = 0 + 5161 = 0 + 5162 = 0 + 5187 = 0 + 5193 = 0 + 5194 = 0 + 5211 = 0 + 5212 = 0 + 5223 = 0 + 5224 = 0 + 5225 = 0 + 5226 = 0 + 5376 = 0 + 5377 = 0 + 5380 = 0 + 5382 = 0 + 5383 = 0 + 5396 = 0 + 5397 = 0 + 5400 = 0 + 5402 = 0 + 5401 = 0 + 5403 = 0 + 5408 = 0 + 5409 = 0 + 5412 = 0 + 5413 = 0 + 5414 = 0 + 5415 = 0 + 5440 = 0 + 5441 = 0 + 5442 = 0 + 5443 = 0 + 5485 = 0 + 5495 = 0 + 5496 = 0 + 5501 = 0 + 5502 = 0 + 5521 = 0 + 5522 = 0 + 5523 = 0 + 5524 = 0 + 5565 = 0 + 5567 = 0 + 5570 = 0 + 5571 = 0 + 5575 = 0 + 5572 = 0 + 5576 = 0 + 5581 = 0 + 5582 = 0 + 5587 = 0 + 5588 = 0 + 5589 = 0 + 5590 = 0 + 5601 = 0 + 5602 = 0 + 5603 = 0 + 5604 = 0 + 5645 = 0 + 5646 = 0 + 5647 = 0 + 5648 = 0 + 5675 = 0 + 5680 = 0 + 5681 = 0 + 5686 = 0 + 5687 = 0 + 5726 = 0 + 5727 = 0 + 5728 = 0 + 5729 = 0 + 5754 = 0 + 5755 = 0 + 5756 = 0 + 5758 = 0 + 5759 = 0 + 5760 = 0 + 5764 = 0 + 5761 = 0 + 5765 = 0 + 5770 = 0 + 5771 = 0 + 5774 = 0 + 5776 = 0 + 5775 = 0 + 5777 = 0 + 5778 = 0 + 5780 = 0 + 5779 = 0 + 5781 = 0 + 5786 = 0 + 5787 = 0 + 5790 = 0 + 5791 = 0 + 5792 = 0 + 5793 = 0 + 5818 = 0 + 5819 = 0 + 5820 = 0 + 5821 = 0 + 5834 = 0 + 5835 = 0 + 5836 = 0 + 5837 = 0 + 5863 = 0 + 5864 = 0 + 5869 = 0 + 5870 = 0 + 5873 = 0 + 5875 = 0 + 5874 = 0 + 5876 = 0 + 5879 = 0 + 5880 = 0 + 5899 = 0 + 5900 = 0 + 5901 = 0 + 5902 = 0 + 5915 = 0 + 5916 = 0 + 5917 = 0 + 5918 = 0 + 6024 = 0 + 6027 = 0 + 6028 = 0 + 6039 = 0 + 6040 = 0 + 6045 = 0 + 6046 = 0 + 6047 = 0 + 6048 = 0 + 6106 = 0 + 6116 = 0 + 6117 = 0 + 6122 = 0 + 6123 = 0 + 6142 = 0 + 6143 = 0 + 6144 = 0 + 6145 = 0 + 6186 = 0 + 6187 = 0 + 6189 = 0 + 6190 = 0 + 6197 = 0 + 6198 = 0 + 6201 = 0 + 6203 = 0 + 6202 = 0 + 6204 = 0 + 6207 = 0 + 6208 = 0 + 6209 = 0 + 6210 = 0 + 6223 = 0 + 6224 = 0 + 6225 = 0 + 6226 = 0 + 6269 = 0 + 6274 = 0 + 6275 = 0 + 6280 = 0 + 6281 = 0 + 6320 = 0 + 6321 = 0 + 6322 = 0 + 6323 = 0 + 6348 = 0 + 6350 = 0 + 6351 = 0 + 6355 = 0 + 6352 = 0 + 6356 = 0 + 6361 = 0 + 6362 = 0 + 6363 = 0 + 6364 = 0 + 6369 = 0 + 6370 = 0 + 6371 = 0 + 6372 = 0 + 6401 = 0 + 6402 = 0 + 6403 = 0 + 6404 = 0 + 6430 = 0 + 6431 = 0 + 6436 = 0 + 6437 = 0 + 6440 = 0 + 6442 = 0 + 6441 = 0 + 6443 = 0 + 6446 = 0 + 6447 = 0 + 6466 = 0 + 6467 = 0 + 6468 = 0 + 6469 = 0 + 6482 = 0 + 6483 = 0 + 6484 = 0 + 6485 = 0 + 6510 = 0 + 6511 = 0 + 6512 = 0 + 6513 = 0 + 6517 = 0 + 6514 = 0 + 6518 = 0 + 6521 = 0 + 6523 = 0 + 6522 = 0 + 6524 = 0 + 6525 = 0 + 6527 = 0 + 6526 = 0 + 6528 = 0 + 6531 = 0 + 6532 = 0 + 6533 = 0 + 6534 = 0 + 6547 = 0 + 6548 = 0 + 6549 = 0 + 6550 = 0 + 6563 = 0 + 6564 = 0 + 6565 = 0 + 6566 = 0 diff --git a/tests/parsed_dirichlet_bcs_06.cc b/tests/parsed_dirichlet_bcs_06.cc new file mode 100644 index 00000000..433e83e0 --- /dev/null +++ b/tests/parsed_dirichlet_bcs_06.cc @@ -0,0 +1,101 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2007 - 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + + +// check the creation of no-flux boundary conditions for a finite +// element that consists of only a single set of vector components +// (i.e. it has dim components) + +#include "tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "utilities.h" +#include "parameter_acceptor.h" +#include "parsed_dirichlet_bcs.h" + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + + deallog << "FE=" << fe.get_name() + << std::endl; + + ConstraintMatrix cm; +// std::set boundary_ids; +// for (unsigned int j=0; j::faces_per_cell; ++j) +// boundary_ids.insert (j); +// +// VectorTools::compute_no_normal_flux_constraints (dof, 1, boundary_ids, cm); + ParsedDirichletBCs parsed_dirichlet("ParsedDirichletBCs", + (dim==2?"p,u,u":"p,u,u,u"), + (dim==2?"0=uN % 1=uN % 2=uN % 3=uN" :"0=uN % 1=uN % 2=uN % 3=uN % 4=uN % 5=uN")); + + + ParameterAcceptor::initialize(); + parsed_dirichlet.compute_no_normal_flux_constraints(dof,cm); + + cm.print (deallog.get_file_stream ()); +} + + +template +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_id (i); + + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), 1, + FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + initlog(); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + //ParameterAcceptor::prm.log_parameters(deallog); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/parsed_dirichlet_bcs_06.output b/tests/parsed_dirichlet_bcs_06.output new file mode 100644 index 00000000..c204629c --- /dev/null +++ b/tests/parsed_dirichlet_bcs_06.output @@ -0,0 +1,1765 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)-FE_Q<2>(1)^2] + 1 = 0 + 2 = 0 + 5 = 0 + 7 = 0 + 14 = 0 + 19 = 0 + 29 = 0 + 34 = 0 + 35 = 0 + 37 = 0 + 43 = 0 + 46 = 0 + 55 = 0 + 56 = 0 + 59 = 0 + 62 = 0 + 67 = 0 + 71 = 0 + 73 = 0 + 74 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(2)-FE_Q<2>(2)^2] + 1 = 0 + 2 = 0 + 5 = 0 + 7 = 0 + 13 = 0 + 20 = 0 + 29 = 0 + 38 = 0 + 46 = 0 + 52 = 0 + 77 = 0 + 86 = 0 + 94 = 0 + 95 = 0 + 97 = 0 + 100 = 0 + 104 = 0 + 124 = 0 + 127 = 0 + 136 = 0 + 142 = 0 + 166 = 0 + 167 = 0 + 170 = 0 + 172 = 0 + 179 = 0 + 185 = 0 + 191 = 0 + 208 = 0 + 211 = 0 + 221 = 0 + 227 = 0 + 232 = 0 + 233 = 0 + 235 = 0 + 239 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(3)-FE_Q<2>(3)^2] + 1 = 0 + 2 = 0 + 5 = 0 + 7 = 0 + 14 = 0 + 15 = 0 + 28 = 0 + 29 = 0 + 50 = 0 + 64 = 0 + 65 = 0 + 85 = 0 + 92 = 0 + 93 = 0 + 149 = 0 + 163 = 0 + 164 = 0 + 184 = 0 + 185 = 0 + 187 = 0 + 191 = 0 + 192 = 0 + 199 = 0 + 200 = 0 + 247 = 0 + 251 = 0 + 252 = 0 + 274 = 0 + 281 = 0 + 282 = 0 + 337 = 0 + 338 = 0 + 341 = 0 + 344 = 0 + 345 = 0 + 358 = 0 + 359 = 0 + 374 = 0 + 385 = 0 + 386 = 0 + 427 = 0 + 431 = 0 + 432 = 0 + 455 = 0 + 466 = 0 + 467 = 0 + 481 = 0 + 482 = 0 + 485 = 0 + 486 = 0 + 493 = 0 + 494 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(1)-FE_Q<3>(1)^3] + 1 = 0 + 2 = 0 + 3 = 0 + 6 = 0 + 7 = 0 + 9 = 0 + 11 = 0 + 15 = 0 + 17 = 0 + 18 = 0 + 22 = 0 + 25 = 0 + 34 = 0 + 35 = 0 + 39 = 0 + 42 = 0 + 49 = 0 + 51 = 0 + 55 = 0 + 57 = 0 + 67 = 0 + 73 = 0 + 74 = 0 + 78 = 0 + 81 = 0 + 90 = 0 + 97 = 0 + 110 = 0 + 111 = 0 + 115 = 0 + 118 = 0 + 125 = 0 + 126 = 0 + 127 = 0 + 129 = 0 + 131 = 0 + 133 = 0 + 134 = 0 + 137 = 0 + 143 = 0 + 149 = 0 + 151 = 0 + 153 = 0 + 158 = 0 + 165 = 0 + 166 = 0 + 169 = 0 + 177 = 0 + 181 = 0 + 183 = 0 + 187 = 0 + 189 = 0 + 199 = 0 + 205 = 0 + 206 = 0 + 207 = 0 + 210 = 0 + 211 = 0 + 213 = 0 + 214 = 0 + 218 = 0 + 222 = 0 + 223 = 0 + 226 = 0 + 229 = 0 + 241 = 0 + 242 = 0 + 246 = 0 + 250 = 0 + 255 = 0 + 261 = 0 + 263 = 0 + 265 = 0 + 270 = 0 + 271 = 0 + 274 = 0 + 277 = 0 + 278 = 0 + 279 = 0 + 281 = 0 + 282 = 0 + 289 = 0 + 294 = 0 + 297 = 0 + 298 = 0 + 301 = 0 + 302 = 0 + 306 = 0 + 309 = 0 + 318 = 0 + 325 = 0 + 337 = 0 + 338 = 0 + 339 = 0 + 342 = 0 + 343 = 0 + 345 = 0 + 347 = 0 + 351 = 0 + 354 = 0 + 355 = 0 + 359 = 0 + 361 = 0 + 363 = 0 + 367 = 0 + 371 = 0 + 374 = 0 + 381 = 0 + 382 = 0 + 385 = 0 + 393 = 0 + 398 = 0 + 399 = 0 + 403 = 0 + 405 = 0 + 406 = 0 + 407 = 0 + 409 = 0 + 411 = 0 + 415 = 0 + 417 = 0 + 419 = 0 + 421 = 0 + 433 = 0 + 434 = 0 + 438 = 0 + 442 = 0 + 445 = 0 + 447 = 0 + 451 = 0 + 455 = 0 + 457 = 0 + 458 = 0 + 459 = 0 + 462 = 0 + 463 = 0 + 466 = 0 + 467 = 0 + 473 = 0 + 478 = 0 + 481 = 0 + 482 = 0 + 487 = 0 + 489 = 0 + 491 = 0 + 494 = 0 + 495 = 0 + 497 = 0 + 498 = 0 + 499 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(2)-FE_Q<3>(2)^3] + 1 = 0 + 2 = 0 + 3 = 0 + 6 = 0 + 7 = 0 + 9 = 0 + 11 = 0 + 15 = 0 + 17 = 0 + 18 = 0 + 22 = 0 + 25 = 0 + 33 = 0 + 35 = 0 + 39 = 0 + 42 = 0 + 43 = 0 + 47 = 0 + 49 = 0 + 58 = 0 + 65 = 0 + 66 = 0 + 70 = 0 + 73 = 0 + 81 = 0 + 90 = 0 + 99 = 0 + 110 = 0 + 111 = 0 + 115 = 0 + 118 = 0 + 127 = 0 + 130 = 0 + 131 = 0 + 135 = 0 + 142 = 0 + 150 = 0 + 162 = 0 + 171 = 0 + 181 = 0 + 183 = 0 + 187 = 0 + 189 = 0 + 197 = 0 + 199 = 0 + 203 = 0 + 207 = 0 + 209 = 0 + 221 = 0 + 229 = 0 + 243 = 0 + 255 = 0 + 263 = 0 + 267 = 0 + 291 = 0 + 301 = 0 + 302 = 0 + 306 = 0 + 309 = 0 + 317 = 0 + 326 = 0 + 333 = 0 + 334 = 0 + 338 = 0 + 341 = 0 + 349 = 0 + 358 = 0 + 374 = 0 + 386 = 0 + 394 = 0 + 406 = 0 + 421 = 0 + 429 = 0 + 441 = 0 + 449 = 0 + 502 = 0 + 503 = 0 + 507 = 0 + 510 = 0 + 519 = 0 + 522 = 0 + 523 = 0 + 527 = 0 + 534 = 0 + 542 = 0 + 554 = 0 + 563 = 0 + 573 = 0 + 574 = 0 + 575 = 0 + 577 = 0 + 579 = 0 + 581 = 0 + 582 = 0 + 585 = 0 + 589 = 0 + 591 = 0 + 594 = 0 + 595 = 0 + 599 = 0 + 601 = 0 + 606 = 0 + 613 = 0 + 614 = 0 + 617 = 0 + 621 = 0 + 626 = 0 + 635 = 0 + 647 = 0 + 655 = 0 + 659 = 0 + 683 = 0 + 693 = 0 + 695 = 0 + 697 = 0 + 701 = 0 + 703 = 0 + 707 = 0 + 709 = 0 + 717 = 0 + 721 = 0 + 731 = 0 + 742 = 0 + 754 = 0 + 762 = 0 + 774 = 0 + 789 = 0 + 790 = 0 + 793 = 0 + 797 = 0 + 802 = 0 + 809 = 0 + 810 = 0 + 813 = 0 + 817 = 0 + 822 = 0 + 869 = 0 + 873 = 0 + 881 = 0 + 885 = 0 + 901 = 0 + 903 = 0 + 907 = 0 + 909 = 0 + 917 = 0 + 919 = 0 + 923 = 0 + 927 = 0 + 929 = 0 + 941 = 0 + 949 = 0 + 963 = 0 + 975 = 0 + 983 = 0 + 987 = 0 + 1011 = 0 + 1021 = 0 + 1022 = 0 + 1023 = 0 + 1026 = 0 + 1027 = 0 + 1029 = 0 + 1030 = 0 + 1034 = 0 + 1037 = 0 + 1039 = 0 + 1043 = 0 + 1046 = 0 + 1047 = 0 + 1049 = 0 + 1058 = 0 + 1061 = 0 + 1062 = 0 + 1066 = 0 + 1069 = 0 + 1078 = 0 + 1083 = 0 + 1094 = 0 + 1095 = 0 + 1098 = 0 + 1103 = 0 + 1106 = 0 + 1107 = 0 + 1114 = 0 + 1118 = 0 + 1126 = 0 + 1131 = 0 + 1141 = 0 + 1149 = 0 + 1161 = 0 + 1169 = 0 + 1221 = 0 + 1222 = 0 + 1226 = 0 + 1229 = 0 + 1238 = 0 + 1241 = 0 + 1242 = 0 + 1246 = 0 + 1249 = 0 + 1258 = 0 + 1270 = 0 + 1278 = 0 + 1282 = 0 + 1290 = 0 + 1303 = 0 + 1311 = 0 + 1315 = 0 + 1339 = 0 + 1349 = 0 + 1351 = 0 + 1353 = 0 + 1357 = 0 + 1359 = 0 + 1363 = 0 + 1365 = 0 + 1373 = 0 + 1377 = 0 + 1387 = 0 + 1398 = 0 + 1399 = 0 + 1402 = 0 + 1407 = 0 + 1410 = 0 + 1411 = 0 + 1418 = 0 + 1422 = 0 + 1430 = 0 + 1435 = 0 + 1445 = 0 + 1446 = 0 + 1447 = 0 + 1449 = 0 + 1450 = 0 + 1453 = 0 + 1455 = 0 + 1458 = 0 + 1459 = 0 + 1461 = 0 + 1466 = 0 + 1469 = 0 + 1470 = 0 + 1473 = 0 + 1478 = 0 + 1483 = 0 + 1525 = 0 + 1529 = 0 + 1537 = 0 + 1541 = 0 + 1558 = 0 + 1566 = 0 + 1570 = 0 + 1578 = 0 + 1589 = 0 + 1590 = 0 + 1593 = 0 + 1598 = 0 + 1601 = 0 + 1602 = 0 + 1605 = 0 + 1610 = 0 + 1621 = 0 + 1622 = 0 + 1626 = 0 + 1629 = 0 + 1637 = 0 + 1646 = 0 + 1653 = 0 + 1654 = 0 + 1658 = 0 + 1661 = 0 + 1669 = 0 + 1678 = 0 + 1694 = 0 + 1706 = 0 + 1714 = 0 + 1726 = 0 + 1741 = 0 + 1749 = 0 + 1761 = 0 + 1769 = 0 + 1821 = 0 + 1822 = 0 + 1823 = 0 + 1826 = 0 + 1827 = 0 + 1829 = 0 + 1831 = 0 + 1835 = 0 + 1837 = 0 + 1839 = 0 + 1843 = 0 + 1846 = 0 + 1847 = 0 + 1851 = 0 + 1853 = 0 + 1854 = 0 + 1858 = 0 + 1861 = 0 + 1869 = 0 + 1878 = 0 + 1887 = 0 + 1894 = 0 + 1895 = 0 + 1899 = 0 + 1903 = 0 + 1906 = 0 + 1907 = 0 + 1911 = 0 + 1914 = 0 + 1926 = 0 + 1935 = 0 + 1941 = 0 + 1943 = 0 + 1947 = 0 + 1949 = 0 + 1951 = 0 + 1955 = 0 + 1959 = 0 + 1961 = 0 + 1969 = 0 + 1983 = 0 + 1991 = 0 + 1995 = 0 + 1999 = 0 + 2015 = 0 + 2022 = 0 + 2034 = 0 + 2042 = 0 + 2054 = 0 + 2069 = 0 + 2070 = 0 + 2073 = 0 + 2077 = 0 + 2082 = 0 + 2089 = 0 + 2090 = 0 + 2093 = 0 + 2097 = 0 + 2102 = 0 + 2149 = 0 + 2153 = 0 + 2161 = 0 + 2165 = 0 + 2182 = 0 + 2183 = 0 + 2187 = 0 + 2191 = 0 + 2194 = 0 + 2195 = 0 + 2199 = 0 + 2202 = 0 + 2214 = 0 + 2223 = 0 + 2229 = 0 + 2230 = 0 + 2231 = 0 + 2233 = 0 + 2235 = 0 + 2237 = 0 + 2239 = 0 + 2242 = 0 + 2243 = 0 + 2247 = 0 + 2249 = 0 + 2250 = 0 + 2253 = 0 + 2257 = 0 + 2262 = 0 + 2271 = 0 + 2279 = 0 + 2283 = 0 + 2287 = 0 + 2303 = 0 + 2309 = 0 + 2311 = 0 + 2313 = 0 + 2315 = 0 + 2319 = 0 + 2321 = 0 + 2325 = 0 + 2335 = 0 + 2341 = 0 + 2349 = 0 + 2361 = 0 + 2369 = 0 + 2421 = 0 + 2422 = 0 + 2426 = 0 + 2429 = 0 + 2438 = 0 + 2441 = 0 + 2442 = 0 + 2446 = 0 + 2449 = 0 + 2458 = 0 + 2470 = 0 + 2478 = 0 + 2482 = 0 + 2490 = 0 + 2501 = 0 + 2503 = 0 + 2507 = 0 + 2509 = 0 + 2511 = 0 + 2515 = 0 + 2519 = 0 + 2521 = 0 + 2529 = 0 + 2543 = 0 + 2551 = 0 + 2555 = 0 + 2559 = 0 + 2575 = 0 + 2581 = 0 + 2582 = 0 + 2583 = 0 + 2586 = 0 + 2587 = 0 + 2589 = 0 + 2591 = 0 + 2595 = 0 + 2598 = 0 + 2599 = 0 + 2601 = 0 + 2602 = 0 + 2606 = 0 + 2609 = 0 + 2618 = 0 + 2623 = 0 + 2630 = 0 + 2631 = 0 + 2635 = 0 + 2638 = 0 + 2639 = 0 + 2642 = 0 + 2650 = 0 + 2655 = 0 + 2693 = 0 + 2697 = 0 + 2705 = 0 + 2709 = 0 + 2726 = 0 + 2734 = 0 + 2738 = 0 + 2746 = 0 + 2757 = 0 + 2758 = 0 + 2761 = 0 + 2766 = 0 + 2769 = 0 + 2770 = 0 + 2773 = 0 + 2778 = 0 + 2791 = 0 + 2795 = 0 + 2799 = 0 + 2815 = 0 + 2821 = 0 + 2823 = 0 + 2825 = 0 + 2827 = 0 + 2831 = 0 + 2833 = 0 + 2837 = 0 + 2847 = 0 + 2854 = 0 + 2855 = 0 + 2859 = 0 + 2862 = 0 + 2863 = 0 + 2866 = 0 + 2874 = 0 + 2879 = 0 + 2885 = 0 + 2886 = 0 + 2887 = 0 + 2889 = 0 + 2891 = 0 + 2894 = 0 + 2895 = 0 + 2897 = 0 + 2898 = 0 + 2901 = 0 + 2906 = 0 + 2911 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(3)-FE_Q<3>(3)^3] + 1 = 0 + 2 = 0 + 3 = 0 + 6 = 0 + 7 = 0 + 9 = 0 + 11 = 0 + 15 = 0 + 17 = 0 + 18 = 0 + 22 = 0 + 25 = 0 + 34 = 0 + 38 = 0 + 35 = 0 + 39 = 0 + 46 = 0 + 47 = 0 + 52 = 0 + 54 = 0 + 53 = 0 + 55 = 0 + 62 = 0 + 63 = 0 + 66 = 0 + 67 = 0 + 84 = 0 + 85 = 0 + 98 = 0 + 100 = 0 + 99 = 0 + 101 = 0 + 108 = 0 + 109 = 0 + 114 = 0 + 115 = 0 + 132 = 0 + 133 = 0 + 134 = 0 + 135 = 0 + 168 = 0 + 169 = 0 + 170 = 0 + 171 = 0 + 204 = 0 + 205 = 0 + 206 = 0 + 207 = 0 + 258 = 0 + 259 = 0 + 263 = 0 + 266 = 0 + 278 = 0 + 279 = 0 + 284 = 0 + 286 = 0 + 285 = 0 + 287 = 0 + 294 = 0 + 295 = 0 + 308 = 0 + 309 = 0 + 324 = 0 + 325 = 0 + 360 = 0 + 361 = 0 + 362 = 0 + 363 = 0 + 396 = 0 + 397 = 0 + 398 = 0 + 399 = 0 + 449 = 0 + 451 = 0 + 455 = 0 + 457 = 0 + 466 = 0 + 470 = 0 + 467 = 0 + 471 = 0 + 478 = 0 + 479 = 0 + 486 = 0 + 487 = 0 + 490 = 0 + 491 = 0 + 514 = 0 + 515 = 0 + 532 = 0 + 533 = 0 + 534 = 0 + 535 = 0 + 588 = 0 + 589 = 0 + 590 = 0 + 591 = 0 + 643 = 0 + 654 = 0 + 655 = 0 + 662 = 0 + 663 = 0 + 732 = 0 + 733 = 0 + 734 = 0 + 735 = 0 + 785 = 0 + 786 = 0 + 790 = 0 + 793 = 0 + 802 = 0 + 803 = 0 + 820 = 0 + 821 = 0 + 834 = 0 + 836 = 0 + 835 = 0 + 837 = 0 + 844 = 0 + 845 = 0 + 850 = 0 + 851 = 0 + 868 = 0 + 869 = 0 + 870 = 0 + 871 = 0 + 904 = 0 + 905 = 0 + 906 = 0 + 907 = 0 + 978 = 0 + 996 = 0 + 997 = 0 + 1012 = 0 + 1013 = 0 + 1048 = 0 + 1049 = 0 + 1050 = 0 + 1051 = 0 + 1121 = 0 + 1130 = 0 + 1131 = 0 + 1154 = 0 + 1155 = 0 + 1172 = 0 + 1173 = 0 + 1174 = 0 + 1175 = 0 + 1374 = 0 + 1375 = 0 + 1379 = 0 + 1382 = 0 + 1394 = 0 + 1395 = 0 + 1400 = 0 + 1402 = 0 + 1401 = 0 + 1403 = 0 + 1410 = 0 + 1411 = 0 + 1424 = 0 + 1425 = 0 + 1440 = 0 + 1441 = 0 + 1476 = 0 + 1477 = 0 + 1478 = 0 + 1479 = 0 + 1512 = 0 + 1513 = 0 + 1514 = 0 + 1515 = 0 + 1565 = 0 + 1566 = 0 + 1567 = 0 + 1569 = 0 + 1571 = 0 + 1573 = 0 + 1574 = 0 + 1577 = 0 + 1582 = 0 + 1586 = 0 + 1583 = 0 + 1587 = 0 + 1592 = 0 + 1594 = 0 + 1593 = 0 + 1595 = 0 + 1602 = 0 + 1603 = 0 + 1606 = 0 + 1607 = 0 + 1616 = 0 + 1617 = 0 + 1630 = 0 + 1632 = 0 + 1631 = 0 + 1633 = 0 + 1638 = 0 + 1639 = 0 + 1648 = 0 + 1649 = 0 + 1650 = 0 + 1651 = 0 + 1668 = 0 + 1669 = 0 + 1670 = 0 + 1671 = 0 + 1704 = 0 + 1705 = 0 + 1706 = 0 + 1707 = 0 + 1759 = 0 + 1770 = 0 + 1771 = 0 + 1778 = 0 + 1779 = 0 + 1848 = 0 + 1849 = 0 + 1850 = 0 + 1851 = 0 + 1901 = 0 + 1903 = 0 + 1905 = 0 + 1910 = 0 + 1914 = 0 + 1911 = 0 + 1915 = 0 + 1922 = 0 + 1923 = 0 + 1926 = 0 + 1927 = 0 + 1942 = 0 + 1943 = 0 + 1952 = 0 + 1953 = 0 + 1954 = 0 + 1955 = 0 + 1992 = 0 + 1993 = 0 + 1994 = 0 + 1995 = 0 + 2046 = 0 + 2064 = 0 + 2065 = 0 + 2080 = 0 + 2081 = 0 + 2116 = 0 + 2117 = 0 + 2118 = 0 + 2119 = 0 + 2189 = 0 + 2190 = 0 + 2193 = 0 + 2198 = 0 + 2199 = 0 + 2208 = 0 + 2209 = 0 + 2222 = 0 + 2224 = 0 + 2223 = 0 + 2225 = 0 + 2230 = 0 + 2231 = 0 + 2240 = 0 + 2241 = 0 + 2242 = 0 + 2243 = 0 + 2260 = 0 + 2261 = 0 + 2262 = 0 + 2263 = 0 + 2441 = 0 + 2446 = 0 + 2447 = 0 + 2462 = 0 + 2463 = 0 + 2472 = 0 + 2473 = 0 + 2474 = 0 + 2475 = 0 + 2549 = 0 + 2551 = 0 + 2555 = 0 + 2557 = 0 + 2566 = 0 + 2570 = 0 + 2567 = 0 + 2571 = 0 + 2578 = 0 + 2579 = 0 + 2586 = 0 + 2587 = 0 + 2590 = 0 + 2591 = 0 + 2614 = 0 + 2615 = 0 + 2632 = 0 + 2633 = 0 + 2634 = 0 + 2635 = 0 + 2688 = 0 + 2689 = 0 + 2690 = 0 + 2691 = 0 + 2743 = 0 + 2754 = 0 + 2755 = 0 + 2762 = 0 + 2763 = 0 + 2832 = 0 + 2833 = 0 + 2834 = 0 + 2835 = 0 + 2885 = 0 + 2886 = 0 + 2887 = 0 + 2890 = 0 + 2891 = 0 + 2893 = 0 + 2894 = 0 + 2898 = 0 + 2902 = 0 + 2906 = 0 + 2903 = 0 + 2907 = 0 + 2914 = 0 + 2915 = 0 + 2920 = 0 + 2922 = 0 + 2921 = 0 + 2923 = 0 + 2926 = 0 + 2927 = 0 + 2944 = 0 + 2945 = 0 + 2950 = 0 + 2952 = 0 + 2951 = 0 + 2953 = 0 + 2960 = 0 + 2961 = 0 + 2968 = 0 + 2969 = 0 + 2970 = 0 + 2971 = 0 + 3004 = 0 + 3005 = 0 + 3006 = 0 + 3007 = 0 + 3024 = 0 + 3025 = 0 + 3026 = 0 + 3027 = 0 + 3078 = 0 + 3079 = 0 + 3082 = 0 + 3090 = 0 + 3091 = 0 + 3096 = 0 + 3098 = 0 + 3097 = 0 + 3099 = 0 + 3112 = 0 + 3113 = 0 + 3120 = 0 + 3121 = 0 + 3148 = 0 + 3149 = 0 + 3150 = 0 + 3151 = 0 + 3168 = 0 + 3169 = 0 + 3170 = 0 + 3171 = 0 + 3221 = 0 + 3230 = 0 + 3231 = 0 + 3254 = 0 + 3255 = 0 + 3272 = 0 + 3273 = 0 + 3274 = 0 + 3275 = 0 + 3473 = 0 + 3474 = 0 + 3478 = 0 + 3482 = 0 + 3483 = 0 + 3500 = 0 + 3501 = 0 + 3506 = 0 + 3508 = 0 + 3507 = 0 + 3509 = 0 + 3516 = 0 + 3517 = 0 + 3524 = 0 + 3525 = 0 + 3526 = 0 + 3527 = 0 + 3560 = 0 + 3561 = 0 + 3562 = 0 + 3563 = 0 + 3618 = 0 + 3632 = 0 + 3633 = 0 + 3640 = 0 + 3641 = 0 + 3668 = 0 + 3669 = 0 + 3670 = 0 + 3671 = 0 + 3727 = 0 + 3738 = 0 + 3739 = 0 + 3746 = 0 + 3747 = 0 + 3816 = 0 + 3817 = 0 + 3818 = 0 + 3819 = 0 + 3869 = 0 + 3871 = 0 + 3873 = 0 + 3878 = 0 + 3882 = 0 + 3879 = 0 + 3883 = 0 + 3890 = 0 + 3891 = 0 + 3894 = 0 + 3895 = 0 + 3910 = 0 + 3911 = 0 + 3920 = 0 + 3921 = 0 + 3922 = 0 + 3923 = 0 + 3960 = 0 + 3961 = 0 + 3962 = 0 + 3963 = 0 + 4014 = 0 + 4015 = 0 + 4018 = 0 + 4026 = 0 + 4027 = 0 + 4032 = 0 + 4034 = 0 + 4033 = 0 + 4035 = 0 + 4048 = 0 + 4049 = 0 + 4056 = 0 + 4057 = 0 + 4084 = 0 + 4085 = 0 + 4086 = 0 + 4087 = 0 + 4104 = 0 + 4105 = 0 + 4106 = 0 + 4107 = 0 + 4157 = 0 + 4158 = 0 + 4159 = 0 + 4161 = 0 + 4162 = 0 + 4166 = 0 + 4170 = 0 + 4167 = 0 + 4171 = 0 + 4176 = 0 + 4178 = 0 + 4177 = 0 + 4179 = 0 + 4182 = 0 + 4183 = 0 + 4192 = 0 + 4193 = 0 + 4198 = 0 + 4200 = 0 + 4199 = 0 + 4201 = 0 + 4208 = 0 + 4209 = 0 + 4210 = 0 + 4211 = 0 + 4228 = 0 + 4229 = 0 + 4230 = 0 + 4231 = 0 + 4248 = 0 + 4249 = 0 + 4250 = 0 + 4251 = 0 + 4409 = 0 + 4414 = 0 + 4415 = 0 + 4430 = 0 + 4431 = 0 + 4440 = 0 + 4441 = 0 + 4442 = 0 + 4443 = 0 + 4518 = 0 + 4532 = 0 + 4533 = 0 + 4540 = 0 + 4541 = 0 + 4568 = 0 + 4569 = 0 + 4570 = 0 + 4571 = 0 + 4625 = 0 + 4626 = 0 + 4630 = 0 + 4631 = 0 + 4640 = 0 + 4641 = 0 + 4646 = 0 + 4648 = 0 + 4647 = 0 + 4649 = 0 + 4656 = 0 + 4657 = 0 + 4658 = 0 + 4659 = 0 + 4676 = 0 + 4677 = 0 + 4678 = 0 + 4679 = 0 + 4733 = 0 + 4734 = 0 + 4738 = 0 + 4741 = 0 + 4750 = 0 + 4751 = 0 + 4768 = 0 + 4769 = 0 + 4782 = 0 + 4784 = 0 + 4783 = 0 + 4785 = 0 + 4792 = 0 + 4793 = 0 + 4798 = 0 + 4799 = 0 + 4816 = 0 + 4817 = 0 + 4818 = 0 + 4819 = 0 + 4852 = 0 + 4853 = 0 + 4854 = 0 + 4855 = 0 + 4926 = 0 + 4944 = 0 + 4945 = 0 + 4960 = 0 + 4961 = 0 + 4996 = 0 + 4997 = 0 + 4998 = 0 + 4999 = 0 + 5069 = 0 + 5078 = 0 + 5079 = 0 + 5102 = 0 + 5103 = 0 + 5120 = 0 + 5121 = 0 + 5122 = 0 + 5123 = 0 + 5321 = 0 + 5322 = 0 + 5323 = 0 + 5326 = 0 + 5327 = 0 + 5329 = 0 + 5331 = 0 + 5335 = 0 + 5338 = 0 + 5342 = 0 + 5339 = 0 + 5343 = 0 + 5350 = 0 + 5351 = 0 + 5356 = 0 + 5358 = 0 + 5357 = 0 + 5359 = 0 + 5366 = 0 + 5367 = 0 + 5370 = 0 + 5372 = 0 + 5371 = 0 + 5373 = 0 + 5380 = 0 + 5381 = 0 + 5386 = 0 + 5387 = 0 + 5404 = 0 + 5405 = 0 + 5406 = 0 + 5407 = 0 + 5440 = 0 + 5441 = 0 + 5442 = 0 + 5443 = 0 + 5476 = 0 + 5477 = 0 + 5478 = 0 + 5479 = 0 + 5514 = 0 + 5515 = 0 + 5519 = 0 + 5526 = 0 + 5527 = 0 + 5532 = 0 + 5534 = 0 + 5533 = 0 + 5535 = 0 + 5542 = 0 + 5543 = 0 + 5548 = 0 + 5549 = 0 + 5584 = 0 + 5585 = 0 + 5586 = 0 + 5587 = 0 + 5620 = 0 + 5621 = 0 + 5622 = 0 + 5623 = 0 + 5657 = 0 + 5659 = 0 + 5663 = 0 + 5666 = 0 + 5670 = 0 + 5667 = 0 + 5671 = 0 + 5678 = 0 + 5679 = 0 + 5686 = 0 + 5687 = 0 + 5690 = 0 + 5691 = 0 + 5708 = 0 + 5709 = 0 + 5710 = 0 + 5711 = 0 + 5764 = 0 + 5765 = 0 + 5766 = 0 + 5767 = 0 + 5803 = 0 + 5810 = 0 + 5811 = 0 + 5818 = 0 + 5819 = 0 + 5872 = 0 + 5873 = 0 + 5874 = 0 + 5875 = 0 + 5910 = 0 + 5928 = 0 + 5929 = 0 + 5944 = 0 + 5945 = 0 + 5980 = 0 + 5981 = 0 + 5982 = 0 + 5983 = 0 + 6053 = 0 + 6054 = 0 + 6057 = 0 + 6062 = 0 + 6063 = 0 + 6072 = 0 + 6073 = 0 + 6086 = 0 + 6088 = 0 + 6087 = 0 + 6089 = 0 + 6094 = 0 + 6095 = 0 + 6104 = 0 + 6105 = 0 + 6106 = 0 + 6107 = 0 + 6124 = 0 + 6125 = 0 + 6126 = 0 + 6127 = 0 + 6305 = 0 + 6310 = 0 + 6311 = 0 + 6326 = 0 + 6327 = 0 + 6336 = 0 + 6337 = 0 + 6338 = 0 + 6339 = 0 + 6414 = 0 + 6415 = 0 + 6419 = 0 + 6426 = 0 + 6427 = 0 + 6432 = 0 + 6434 = 0 + 6433 = 0 + 6435 = 0 + 6442 = 0 + 6443 = 0 + 6448 = 0 + 6449 = 0 + 6484 = 0 + 6485 = 0 + 6486 = 0 + 6487 = 0 + 6520 = 0 + 6521 = 0 + 6522 = 0 + 6523 = 0 + 6557 = 0 + 6558 = 0 + 6559 = 0 + 6561 = 0 + 6563 = 0 + 6566 = 0 + 6570 = 0 + 6567 = 0 + 6571 = 0 + 6576 = 0 + 6578 = 0 + 6577 = 0 + 6579 = 0 + 6586 = 0 + 6587 = 0 + 6590 = 0 + 6592 = 0 + 6591 = 0 + 6593 = 0 + 6598 = 0 + 6599 = 0 + 6608 = 0 + 6609 = 0 + 6610 = 0 + 6611 = 0 + 6628 = 0 + 6629 = 0 + 6630 = 0 + 6631 = 0 + 6664 = 0 + 6665 = 0 + 6666 = 0 + 6667 = 0 + 6703 = 0 + 6710 = 0 + 6711 = 0 + 6718 = 0 + 6719 = 0 + 6772 = 0 + 6773 = 0 + 6774 = 0 + 6775 = 0 + 6809 = 0 + 6811 = 0 + 6814 = 0 + 6818 = 0 + 6815 = 0 + 6819 = 0 + 6826 = 0 + 6827 = 0 + 6830 = 0 + 6831 = 0 + 6840 = 0 + 6841 = 0 + 6842 = 0 + 6843 = 0 + 6880 = 0 + 6881 = 0 + 6882 = 0 + 6883 = 0 + 6917 = 0 + 6926 = 0 + 6927 = 0 + 6950 = 0 + 6951 = 0 + 6968 = 0 + 6969 = 0 + 6970 = 0 + 6971 = 0 + 7169 = 0 + 7170 = 0 + 7174 = 0 + 7178 = 0 + 7179 = 0 + 7196 = 0 + 7197 = 0 + 7202 = 0 + 7204 = 0 + 7203 = 0 + 7205 = 0 + 7212 = 0 + 7213 = 0 + 7220 = 0 + 7221 = 0 + 7222 = 0 + 7223 = 0 + 7256 = 0 + 7257 = 0 + 7258 = 0 + 7259 = 0 + 7314 = 0 + 7328 = 0 + 7329 = 0 + 7336 = 0 + 7337 = 0 + 7364 = 0 + 7365 = 0 + 7366 = 0 + 7367 = 0 + 7421 = 0 + 7423 = 0 + 7427 = 0 + 7430 = 0 + 7434 = 0 + 7431 = 0 + 7435 = 0 + 7442 = 0 + 7443 = 0 + 7450 = 0 + 7451 = 0 + 7454 = 0 + 7455 = 0 + 7472 = 0 + 7473 = 0 + 7474 = 0 + 7475 = 0 + 7528 = 0 + 7529 = 0 + 7530 = 0 + 7531 = 0 + 7567 = 0 + 7574 = 0 + 7575 = 0 + 7582 = 0 + 7583 = 0 + 7636 = 0 + 7637 = 0 + 7638 = 0 + 7639 = 0 + 7673 = 0 + 7674 = 0 + 7675 = 0 + 7678 = 0 + 7679 = 0 + 7682 = 0 + 7686 = 0 + 7683 = 0 + 7687 = 0 + 7694 = 0 + 7695 = 0 + 7700 = 0 + 7702 = 0 + 7701 = 0 + 7703 = 0 + 7706 = 0 + 7708 = 0 + 7707 = 0 + 7709 = 0 + 7716 = 0 + 7717 = 0 + 7724 = 0 + 7725 = 0 + 7726 = 0 + 7727 = 0 + 7760 = 0 + 7761 = 0 + 7762 = 0 + 7763 = 0 + 7780 = 0 + 7781 = 0 + 7782 = 0 + 7783 = 0 + 7818 = 0 + 7819 = 0 + 7826 = 0 + 7827 = 0 + 7832 = 0 + 7834 = 0 + 7833 = 0 + 7835 = 0 + 7840 = 0 + 7841 = 0 + 7868 = 0 + 7869 = 0 + 7870 = 0 + 7871 = 0 + 7888 = 0 + 7889 = 0 + 7890 = 0 + 7891 = 0 + 8033 = 0 + 8038 = 0 + 8039 = 0 + 8054 = 0 + 8055 = 0 + 8064 = 0 + 8065 = 0 + 8066 = 0 + 8067 = 0 + 8142 = 0 + 8156 = 0 + 8157 = 0 + 8164 = 0 + 8165 = 0 + 8192 = 0 + 8193 = 0 + 8194 = 0 + 8195 = 0 + 8249 = 0 + 8250 = 0 + 8254 = 0 + 8255 = 0 + 8264 = 0 + 8265 = 0 + 8270 = 0 + 8272 = 0 + 8271 = 0 + 8273 = 0 + 8280 = 0 + 8281 = 0 + 8282 = 0 + 8283 = 0 + 8300 = 0 + 8301 = 0 + 8302 = 0 + 8303 = 0 + 8359 = 0 + 8366 = 0 + 8367 = 0 + 8374 = 0 + 8375 = 0 + 8428 = 0 + 8429 = 0 + 8430 = 0 + 8431 = 0 + 8465 = 0 + 8467 = 0 + 8470 = 0 + 8474 = 0 + 8471 = 0 + 8475 = 0 + 8482 = 0 + 8483 = 0 + 8486 = 0 + 8487 = 0 + 8496 = 0 + 8497 = 0 + 8498 = 0 + 8499 = 0 + 8536 = 0 + 8537 = 0 + 8538 = 0 + 8539 = 0 + 8574 = 0 + 8575 = 0 + 8582 = 0 + 8583 = 0 + 8588 = 0 + 8590 = 0 + 8589 = 0 + 8591 = 0 + 8596 = 0 + 8597 = 0 + 8624 = 0 + 8625 = 0 + 8626 = 0 + 8627 = 0 + 8644 = 0 + 8645 = 0 + 8646 = 0 + 8647 = 0 + 8681 = 0 + 8682 = 0 + 8683 = 0 + 8686 = 0 + 8690 = 0 + 8687 = 0 + 8691 = 0 + 8696 = 0 + 8698 = 0 + 8697 = 0 + 8699 = 0 + 8702 = 0 + 8704 = 0 + 8703 = 0 + 8705 = 0 + 8712 = 0 + 8713 = 0 + 8714 = 0 + 8715 = 0 + 8732 = 0 + 8733 = 0 + 8734 = 0 + 8735 = 0 + 8752 = 0 + 8753 = 0 + 8754 = 0 + 8755 = 0 diff --git a/tests/parsed_dirichlet_bcs_07.cc b/tests/parsed_dirichlet_bcs_07.cc new file mode 100644 index 00000000..2c3437db --- /dev/null +++ b/tests/parsed_dirichlet_bcs_07.cc @@ -0,0 +1,135 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2007 - 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + + +// check the creation of inhomogeneous normal-flux boundary conditions +// for a finite element that consists of only a single set of vector +// components (i.e. it has dim components) + +#include "tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "utilities.h" +#include "parameter_acceptor.h" +#include "parsed_dirichlet_bcs.h" + + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + deallog << "FE=" << fe.get_name() + << std::endl; + + ConstraintMatrix cm; + + //ConstantFunction constant_function(1.,dim); + //typename FunctionMap::type function_map; + //for (unsigned int j=0; j::faces_per_cell; ++j) + // function_map[j] = &constant_function; + + + //std::set boundary_ids; + //for (unsigned int j=0; j::faces_per_cell; ++j) + // boundary_ids.insert (j); + + //VectorTools::compute_nonzero_normal_flux_constraints (dof, 0, boundary_ids, function_map, cm); + + ParsedDirichletBCs parsed_dirichlet("ParsedDirichletBCs", + (dim==2?"u,u":"u,u,u"), + (dim==2?"0=uN % 1=uN % 2=uN % 3=uN" :"0=uN % 1=uN % 2=uN % 3=uN % 4=uN % 5=uN"), + (dim==2?"0=1;1 % 1=1;1 % 2=1;1 % 3=1;1" :"0=1;1;1 % 1=1;1;1 % 2=1;1;1 % 3=1;1;1 % 4=1;1;1 % 5=1;1;1")); + + ParameterAcceptor::initialize(); + parsed_dirichlet.compute_nonzero_normal_flux_constraints(dof,cm); + cm.print (deallog.get_file_stream ()); + + //Get the location of all boundary dofs + std::vector face_dofs; + const std::vector > & + unit_support_points = fe.get_unit_face_support_points(); + Quadrature quadrature(unit_support_points); + FEFaceValues fe_face_values(fe, quadrature, update_q_points); + typename DoFHandler::active_cell_iterator + cell = dof.begin_active(), + endc = dof.end(); + for (; cell!=endc; ++cell) + for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; + ++face_no) + if (cell->face(face_no)->at_boundary()) + { + typename DoFHandler::face_iterator face = cell->face(face_no); + face_dofs.resize (fe.dofs_per_face); + face->get_dof_indices (face_dofs); + + fe_face_values.reinit(cell, face_no); + for (unsigned int i=0; i +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_id (i); + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + initlog(); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/parsed_dirichlet_bcs_07.output b/tests/parsed_dirichlet_bcs_07.output new file mode 100644 index 00000000..709f25cf --- /dev/null +++ b/tests/parsed_dirichlet_bcs_07.output @@ -0,0 +1,1765 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2] + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 9 = 1.00000 + 12 = 1.00000 + 19 = 1.00000 + 22 = 1.00000 + 23 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 30 = 1.00000 + 36 = 1.00000 + 37 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 44 = 1.00000 + 47 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2] + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 13 = 1.00000 + 19 = 1.00000 + 25 = 1.00000 + 30 = 1.00000 + 34 = 1.00000 + 51 = 1.00000 + 57 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 64 = 1.00000 + 66 = 1.00000 + 69 = 1.00000 + 82 = 1.00000 + 84 = 1.00000 + 90 = 1.00000 + 94 = 1.00000 + 110 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 114 = 1.00000 + 119 = 1.00000 + 123 = 1.00000 + 127 = 1.00000 + 138 = 1.00000 + 140 = 1.00000 + 147 = 1.00000 + 151 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 159 = 1.00000 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2] + 0 = 1.00000 + 1 = 1.00000 + 3 = 1.00000 + 4 = 1.00000 + 8 = 1.00000 + 9 = 1.00000 + 18 = 1.00000 + 19 = 1.00000 + 33 = 1.00000 + 42 = 1.00000 + 43 = 1.00000 + 56 = 1.00000 + 60 = 1.00000 + 61 = 1.00000 + 99 = 1.00000 + 108 = 1.00000 + 109 = 1.00000 + 122 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 132 = 1.00000 + 133 = 1.00000 + 164 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 182 = 1.00000 + 186 = 1.00000 + 187 = 1.00000 + 224 = 1.00000 + 225 = 1.00000 + 227 = 1.00000 + 228 = 1.00000 + 229 = 1.00000 + 238 = 1.00000 + 239 = 1.00000 + 249 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 284 = 1.00000 + 286 = 1.00000 + 287 = 1.00000 + 303 = 1.00000 + 310 = 1.00000 + 311 = 1.00000 + 320 = 1.00000 + 321 = 1.00000 + 322 = 1.00000 + 323 = 1.00000 + 328 = 1.00000 + 329 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3] + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 25 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 36 = 1.00000 + 38 = 1.00000 + 41 = 1.00000 + 42 = 1.00000 + 50 = 1.00000 + 54 = 1.00000 + 55 = 1.00000 + 58 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 72 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 93 = 1.00000 + 94 = 1.00000 + 95 = 1.00000 + 96 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 100 = 1.00000 + 102 = 1.00000 + 107 = 1.00000 + 111 = 1.00000 + 113 = 1.00000 + 114 = 1.00000 + 118 = 1.00000 + 123 = 1.00000 + 124 = 1.00000 + 126 = 1.00000 + 132 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 149 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 157 = 1.00000 + 158 = 1.00000 + 159 = 1.00000 + 160 = 1.00000 + 163 = 1.00000 + 166 = 1.00000 + 167 = 1.00000 + 169 = 1.00000 + 171 = 1.00000 + 180 = 1.00000 + 181 = 1.00000 + 184 = 1.00000 + 187 = 1.00000 + 191 = 1.00000 + 195 = 1.00000 + 197 = 1.00000 + 198 = 1.00000 + 202 = 1.00000 + 203 = 1.00000 + 205 = 1.00000 + 207 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 210 = 1.00000 + 211 = 1.00000 + 216 = 1.00000 + 220 = 1.00000 + 222 = 1.00000 + 223 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 238 = 1.00000 + 243 = 1.00000 + 252 = 1.00000 + 253 = 1.00000 + 254 = 1.00000 + 256 = 1.00000 + 257 = 1.00000 + 258 = 1.00000 + 260 = 1.00000 + 263 = 1.00000 + 265 = 1.00000 + 266 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 272 = 1.00000 + 275 = 1.00000 + 278 = 1.00000 + 280 = 1.00000 + 285 = 1.00000 + 286 = 1.00000 + 288 = 1.00000 + 294 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 302 = 1.00000 + 303 = 1.00000 + 304 = 1.00000 + 305 = 1.00000 + 306 = 1.00000 + 308 = 1.00000 + 311 = 1.00000 + 312 = 1.00000 + 314 = 1.00000 + 315 = 1.00000 + 324 = 1.00000 + 325 = 1.00000 + 328 = 1.00000 + 331 = 1.00000 + 333 = 1.00000 + 335 = 1.00000 + 338 = 1.00000 + 341 = 1.00000 + 342 = 1.00000 + 343 = 1.00000 + 344 = 1.00000 + 346 = 1.00000 + 347 = 1.00000 + 349 = 1.00000 + 350 = 1.00000 + 354 = 1.00000 + 358 = 1.00000 + 360 = 1.00000 + 361 = 1.00000 + 365 = 1.00000 + 366 = 1.00000 + 368 = 1.00000 + 370 = 1.00000 + 371 = 1.00000 + 372 = 1.00000 + 373 = 1.00000 + 374 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3] + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 26 = 1.00000 + 29 = 1.00000 + 31 = 1.00000 + 32 = 1.00000 + 35 = 1.00000 + 36 = 1.00000 + 43 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 52 = 1.00000 + 54 = 1.00000 + 60 = 1.00000 + 67 = 1.00000 + 74 = 1.00000 + 82 = 1.00000 + 83 = 1.00000 + 86 = 1.00000 + 88 = 1.00000 + 95 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 101 = 1.00000 + 106 = 1.00000 + 112 = 1.00000 + 121 = 1.00000 + 128 = 1.00000 + 135 = 1.00000 + 137 = 1.00000 + 140 = 1.00000 + 141 = 1.00000 + 147 = 1.00000 + 149 = 1.00000 + 152 = 1.00000 + 155 = 1.00000 + 156 = 1.00000 + 165 = 1.00000 + 171 = 1.00000 + 182 = 1.00000 + 191 = 1.00000 + 197 = 1.00000 + 200 = 1.00000 + 218 = 1.00000 + 225 = 1.00000 + 226 = 1.00000 + 229 = 1.00000 + 231 = 1.00000 + 237 = 1.00000 + 244 = 1.00000 + 249 = 1.00000 + 250 = 1.00000 + 253 = 1.00000 + 255 = 1.00000 + 261 = 1.00000 + 268 = 1.00000 + 280 = 1.00000 + 289 = 1.00000 + 295 = 1.00000 + 304 = 1.00000 + 315 = 1.00000 + 321 = 1.00000 + 330 = 1.00000 + 336 = 1.00000 + 376 = 1.00000 + 377 = 1.00000 + 380 = 1.00000 + 382 = 1.00000 + 389 = 1.00000 + 391 = 1.00000 + 392 = 1.00000 + 395 = 1.00000 + 400 = 1.00000 + 406 = 1.00000 + 415 = 1.00000 + 422 = 1.00000 + 429 = 1.00000 + 430 = 1.00000 + 431 = 1.00000 + 432 = 1.00000 + 434 = 1.00000 + 435 = 1.00000 + 436 = 1.00000 + 438 = 1.00000 + 441 = 1.00000 + 443 = 1.00000 + 445 = 1.00000 + 446 = 1.00000 + 449 = 1.00000 + 450 = 1.00000 + 454 = 1.00000 + 459 = 1.00000 + 460 = 1.00000 + 462 = 1.00000 + 465 = 1.00000 + 469 = 1.00000 + 476 = 1.00000 + 485 = 1.00000 + 491 = 1.00000 + 494 = 1.00000 + 512 = 1.00000 + 519 = 1.00000 + 521 = 1.00000 + 522 = 1.00000 + 525 = 1.00000 + 527 = 1.00000 + 530 = 1.00000 + 531 = 1.00000 + 537 = 1.00000 + 540 = 1.00000 + 548 = 1.00000 + 556 = 1.00000 + 565 = 1.00000 + 571 = 1.00000 + 580 = 1.00000 + 591 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 597 = 1.00000 + 601 = 1.00000 + 606 = 1.00000 + 607 = 1.00000 + 609 = 1.00000 + 612 = 1.00000 + 616 = 1.00000 + 651 = 1.00000 + 654 = 1.00000 + 660 = 1.00000 + 663 = 1.00000 + 675 = 1.00000 + 677 = 1.00000 + 680 = 1.00000 + 681 = 1.00000 + 687 = 1.00000 + 689 = 1.00000 + 692 = 1.00000 + 695 = 1.00000 + 696 = 1.00000 + 705 = 1.00000 + 711 = 1.00000 + 722 = 1.00000 + 731 = 1.00000 + 737 = 1.00000 + 740 = 1.00000 + 758 = 1.00000 + 765 = 1.00000 + 766 = 1.00000 + 767 = 1.00000 + 769 = 1.00000 + 770 = 1.00000 + 771 = 1.00000 + 772 = 1.00000 + 775 = 1.00000 + 777 = 1.00000 + 779 = 1.00000 + 782 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 793 = 1.00000 + 795 = 1.00000 + 796 = 1.00000 + 799 = 1.00000 + 801 = 1.00000 + 808 = 1.00000 + 812 = 1.00000 + 820 = 1.00000 + 821 = 1.00000 + 823 = 1.00000 + 827 = 1.00000 + 829 = 1.00000 + 830 = 1.00000 + 835 = 1.00000 + 838 = 1.00000 + 844 = 1.00000 + 848 = 1.00000 + 855 = 1.00000 + 861 = 1.00000 + 870 = 1.00000 + 876 = 1.00000 + 915 = 1.00000 + 916 = 1.00000 + 919 = 1.00000 + 921 = 1.00000 + 928 = 1.00000 + 930 = 1.00000 + 931 = 1.00000 + 934 = 1.00000 + 936 = 1.00000 + 943 = 1.00000 + 952 = 1.00000 + 958 = 1.00000 + 961 = 1.00000 + 967 = 1.00000 + 977 = 1.00000 + 983 = 1.00000 + 986 = 1.00000 + 1004 = 1.00000 + 1011 = 1.00000 + 1013 = 1.00000 + 1014 = 1.00000 + 1017 = 1.00000 + 1019 = 1.00000 + 1022 = 1.00000 + 1023 = 1.00000 + 1029 = 1.00000 + 1032 = 1.00000 + 1040 = 1.00000 + 1048 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1055 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1063 = 1.00000 + 1066 = 1.00000 + 1072 = 1.00000 + 1076 = 1.00000 + 1083 = 1.00000 + 1084 = 1.00000 + 1085 = 1.00000 + 1086 = 1.00000 + 1087 = 1.00000 + 1089 = 1.00000 + 1091 = 1.00000 + 1093 = 1.00000 + 1094 = 1.00000 + 1095 = 1.00000 + 1099 = 1.00000 + 1101 = 1.00000 + 1102 = 1.00000 + 1104 = 1.00000 + 1108 = 1.00000 + 1112 = 1.00000 + 1143 = 1.00000 + 1146 = 1.00000 + 1152 = 1.00000 + 1155 = 1.00000 + 1168 = 1.00000 + 1174 = 1.00000 + 1177 = 1.00000 + 1183 = 1.00000 + 1191 = 1.00000 + 1192 = 1.00000 + 1194 = 1.00000 + 1198 = 1.00000 + 1200 = 1.00000 + 1201 = 1.00000 + 1203 = 1.00000 + 1207 = 1.00000 + 1215 = 1.00000 + 1216 = 1.00000 + 1219 = 1.00000 + 1221 = 1.00000 + 1227 = 1.00000 + 1234 = 1.00000 + 1239 = 1.00000 + 1240 = 1.00000 + 1243 = 1.00000 + 1245 = 1.00000 + 1251 = 1.00000 + 1258 = 1.00000 + 1270 = 1.00000 + 1279 = 1.00000 + 1285 = 1.00000 + 1294 = 1.00000 + 1305 = 1.00000 + 1311 = 1.00000 + 1320 = 1.00000 + 1326 = 1.00000 + 1365 = 1.00000 + 1366 = 1.00000 + 1367 = 1.00000 + 1369 = 1.00000 + 1370 = 1.00000 + 1371 = 1.00000 + 1373 = 1.00000 + 1376 = 1.00000 + 1377 = 1.00000 + 1379 = 1.00000 + 1382 = 1.00000 + 1384 = 1.00000 + 1385 = 1.00000 + 1388 = 1.00000 + 1389 = 1.00000 + 1390 = 1.00000 + 1393 = 1.00000 + 1395 = 1.00000 + 1401 = 1.00000 + 1408 = 1.00000 + 1415 = 1.00000 + 1420 = 1.00000 + 1421 = 1.00000 + 1424 = 1.00000 + 1427 = 1.00000 + 1429 = 1.00000 + 1430 = 1.00000 + 1433 = 1.00000 + 1435 = 1.00000 + 1444 = 1.00000 + 1451 = 1.00000 + 1455 = 1.00000 + 1457 = 1.00000 + 1460 = 1.00000 + 1461 = 1.00000 + 1463 = 1.00000 + 1466 = 1.00000 + 1469 = 1.00000 + 1470 = 1.00000 + 1476 = 1.00000 + 1487 = 1.00000 + 1493 = 1.00000 + 1496 = 1.00000 + 1499 = 1.00000 + 1511 = 1.00000 + 1516 = 1.00000 + 1525 = 1.00000 + 1531 = 1.00000 + 1540 = 1.00000 + 1551 = 1.00000 + 1552 = 1.00000 + 1554 = 1.00000 + 1557 = 1.00000 + 1561 = 1.00000 + 1566 = 1.00000 + 1567 = 1.00000 + 1569 = 1.00000 + 1572 = 1.00000 + 1576 = 1.00000 + 1611 = 1.00000 + 1614 = 1.00000 + 1620 = 1.00000 + 1623 = 1.00000 + 1636 = 1.00000 + 1637 = 1.00000 + 1640 = 1.00000 + 1643 = 1.00000 + 1645 = 1.00000 + 1646 = 1.00000 + 1649 = 1.00000 + 1651 = 1.00000 + 1660 = 1.00000 + 1667 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1673 = 1.00000 + 1674 = 1.00000 + 1676 = 1.00000 + 1677 = 1.00000 + 1679 = 1.00000 + 1681 = 1.00000 + 1682 = 1.00000 + 1685 = 1.00000 + 1686 = 1.00000 + 1687 = 1.00000 + 1689 = 1.00000 + 1692 = 1.00000 + 1696 = 1.00000 + 1703 = 1.00000 + 1709 = 1.00000 + 1712 = 1.00000 + 1715 = 1.00000 + 1727 = 1.00000 + 1731 = 1.00000 + 1733 = 1.00000 + 1734 = 1.00000 + 1736 = 1.00000 + 1739 = 1.00000 + 1740 = 1.00000 + 1743 = 1.00000 + 1751 = 1.00000 + 1755 = 1.00000 + 1761 = 1.00000 + 1770 = 1.00000 + 1776 = 1.00000 + 1815 = 1.00000 + 1816 = 1.00000 + 1819 = 1.00000 + 1821 = 1.00000 + 1828 = 1.00000 + 1830 = 1.00000 + 1831 = 1.00000 + 1834 = 1.00000 + 1836 = 1.00000 + 1843 = 1.00000 + 1852 = 1.00000 + 1858 = 1.00000 + 1861 = 1.00000 + 1867 = 1.00000 + 1875 = 1.00000 + 1877 = 1.00000 + 1880 = 1.00000 + 1881 = 1.00000 + 1883 = 1.00000 + 1886 = 1.00000 + 1889 = 1.00000 + 1890 = 1.00000 + 1896 = 1.00000 + 1907 = 1.00000 + 1913 = 1.00000 + 1916 = 1.00000 + 1919 = 1.00000 + 1931 = 1.00000 + 1935 = 1.00000 + 1936 = 1.00000 + 1937 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1943 = 1.00000 + 1946 = 1.00000 + 1948 = 1.00000 + 1949 = 1.00000 + 1950 = 1.00000 + 1951 = 1.00000 + 1954 = 1.00000 + 1956 = 1.00000 + 1963 = 1.00000 + 1967 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1976 = 1.00000 + 1978 = 1.00000 + 1979 = 1.00000 + 1981 = 1.00000 + 1987 = 1.00000 + 1991 = 1.00000 + 2019 = 1.00000 + 2022 = 1.00000 + 2028 = 1.00000 + 2031 = 1.00000 + 2044 = 1.00000 + 2050 = 1.00000 + 2053 = 1.00000 + 2059 = 1.00000 + 2067 = 1.00000 + 2068 = 1.00000 + 2070 = 1.00000 + 2074 = 1.00000 + 2076 = 1.00000 + 2077 = 1.00000 + 2079 = 1.00000 + 2083 = 1.00000 + 2093 = 1.00000 + 2096 = 1.00000 + 2099 = 1.00000 + 2111 = 1.00000 + 2115 = 1.00000 + 2117 = 1.00000 + 2118 = 1.00000 + 2120 = 1.00000 + 2123 = 1.00000 + 2124 = 1.00000 + 2127 = 1.00000 + 2135 = 1.00000 + 2140 = 1.00000 + 2141 = 1.00000 + 2144 = 1.00000 + 2146 = 1.00000 + 2147 = 1.00000 + 2149 = 1.00000 + 2155 = 1.00000 + 2159 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2166 = 1.00000 + 2168 = 1.00000 + 2170 = 1.00000 + 2171 = 1.00000 + 2172 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 + 2183 = 1.00000 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3] + 0 = 1.00000 + 1 = 1.00000 + 2 = 1.00000 + 4 = 1.00000 + 5 = 1.00000 + 6 = 1.00000 + 8 = 1.00000 + 11 = 1.00000 + 12 = 1.00000 + 13 = 1.00000 + 16 = 1.00000 + 18 = 1.00000 + 24 = 1.00000 + 28 = 1.00000 + 25 = 1.00000 + 29 = 1.00000 + 34 = 1.00000 + 35 = 1.00000 + 38 = 1.00000 + 40 = 1.00000 + 39 = 1.00000 + 41 = 1.00000 + 46 = 1.00000 + 47 = 1.00000 + 48 = 1.00000 + 49 = 1.00000 + 62 = 1.00000 + 63 = 1.00000 + 72 = 1.00000 + 74 = 1.00000 + 73 = 1.00000 + 75 = 1.00000 + 80 = 1.00000 + 81 = 1.00000 + 84 = 1.00000 + 85 = 1.00000 + 96 = 1.00000 + 97 = 1.00000 + 98 = 1.00000 + 99 = 1.00000 + 124 = 1.00000 + 125 = 1.00000 + 126 = 1.00000 + 127 = 1.00000 + 152 = 1.00000 + 153 = 1.00000 + 154 = 1.00000 + 155 = 1.00000 + 193 = 1.00000 + 194 = 1.00000 + 197 = 1.00000 + 199 = 1.00000 + 208 = 1.00000 + 209 = 1.00000 + 212 = 1.00000 + 214 = 1.00000 + 213 = 1.00000 + 215 = 1.00000 + 220 = 1.00000 + 221 = 1.00000 + 230 = 1.00000 + 231 = 1.00000 + 242 = 1.00000 + 243 = 1.00000 + 268 = 1.00000 + 269 = 1.00000 + 270 = 1.00000 + 271 = 1.00000 + 296 = 1.00000 + 297 = 1.00000 + 298 = 1.00000 + 299 = 1.00000 + 336 = 1.00000 + 338 = 1.00000 + 341 = 1.00000 + 342 = 1.00000 + 348 = 1.00000 + 352 = 1.00000 + 349 = 1.00000 + 353 = 1.00000 + 358 = 1.00000 + 359 = 1.00000 + 364 = 1.00000 + 365 = 1.00000 + 366 = 1.00000 + 367 = 1.00000 + 384 = 1.00000 + 385 = 1.00000 + 396 = 1.00000 + 397 = 1.00000 + 398 = 1.00000 + 399 = 1.00000 + 440 = 1.00000 + 441 = 1.00000 + 442 = 1.00000 + 443 = 1.00000 + 482 = 1.00000 + 490 = 1.00000 + 491 = 1.00000 + 496 = 1.00000 + 497 = 1.00000 + 548 = 1.00000 + 549 = 1.00000 + 550 = 1.00000 + 551 = 1.00000 + 588 = 1.00000 + 589 = 1.00000 + 592 = 1.00000 + 594 = 1.00000 + 600 = 1.00000 + 601 = 1.00000 + 614 = 1.00000 + 615 = 1.00000 + 624 = 1.00000 + 626 = 1.00000 + 625 = 1.00000 + 627 = 1.00000 + 632 = 1.00000 + 633 = 1.00000 + 636 = 1.00000 + 637 = 1.00000 + 648 = 1.00000 + 649 = 1.00000 + 650 = 1.00000 + 651 = 1.00000 + 676 = 1.00000 + 677 = 1.00000 + 678 = 1.00000 + 679 = 1.00000 + 733 = 1.00000 + 746 = 1.00000 + 747 = 1.00000 + 758 = 1.00000 + 759 = 1.00000 + 784 = 1.00000 + 785 = 1.00000 + 786 = 1.00000 + 787 = 1.00000 + 840 = 1.00000 + 846 = 1.00000 + 847 = 1.00000 + 864 = 1.00000 + 865 = 1.00000 + 876 = 1.00000 + 877 = 1.00000 + 878 = 1.00000 + 879 = 1.00000 + 1030 = 1.00000 + 1031 = 1.00000 + 1034 = 1.00000 + 1036 = 1.00000 + 1045 = 1.00000 + 1046 = 1.00000 + 1049 = 1.00000 + 1051 = 1.00000 + 1050 = 1.00000 + 1052 = 1.00000 + 1057 = 1.00000 + 1058 = 1.00000 + 1067 = 1.00000 + 1068 = 1.00000 + 1079 = 1.00000 + 1080 = 1.00000 + 1105 = 1.00000 + 1106 = 1.00000 + 1107 = 1.00000 + 1108 = 1.00000 + 1133 = 1.00000 + 1134 = 1.00000 + 1135 = 1.00000 + 1136 = 1.00000 + 1173 = 1.00000 + 1174 = 1.00000 + 1175 = 1.00000 + 1176 = 1.00000 + 1178 = 1.00000 + 1179 = 1.00000 + 1180 = 1.00000 + 1182 = 1.00000 + 1185 = 1.00000 + 1189 = 1.00000 + 1186 = 1.00000 + 1190 = 1.00000 + 1193 = 1.00000 + 1195 = 1.00000 + 1194 = 1.00000 + 1196 = 1.00000 + 1201 = 1.00000 + 1202 = 1.00000 + 1203 = 1.00000 + 1204 = 1.00000 + 1211 = 1.00000 + 1212 = 1.00000 + 1221 = 1.00000 + 1223 = 1.00000 + 1222 = 1.00000 + 1224 = 1.00000 + 1227 = 1.00000 + 1228 = 1.00000 + 1233 = 1.00000 + 1234 = 1.00000 + 1235 = 1.00000 + 1236 = 1.00000 + 1249 = 1.00000 + 1250 = 1.00000 + 1251 = 1.00000 + 1252 = 1.00000 + 1277 = 1.00000 + 1278 = 1.00000 + 1279 = 1.00000 + 1280 = 1.00000 + 1319 = 1.00000 + 1327 = 1.00000 + 1328 = 1.00000 + 1333 = 1.00000 + 1334 = 1.00000 + 1385 = 1.00000 + 1386 = 1.00000 + 1387 = 1.00000 + 1388 = 1.00000 + 1425 = 1.00000 + 1427 = 1.00000 + 1428 = 1.00000 + 1431 = 1.00000 + 1435 = 1.00000 + 1432 = 1.00000 + 1436 = 1.00000 + 1441 = 1.00000 + 1442 = 1.00000 + 1443 = 1.00000 + 1444 = 1.00000 + 1455 = 1.00000 + 1456 = 1.00000 + 1461 = 1.00000 + 1462 = 1.00000 + 1463 = 1.00000 + 1464 = 1.00000 + 1493 = 1.00000 + 1494 = 1.00000 + 1495 = 1.00000 + 1496 = 1.00000 + 1534 = 1.00000 + 1547 = 1.00000 + 1548 = 1.00000 + 1559 = 1.00000 + 1560 = 1.00000 + 1585 = 1.00000 + 1586 = 1.00000 + 1587 = 1.00000 + 1588 = 1.00000 + 1641 = 1.00000 + 1642 = 1.00000 + 1644 = 1.00000 + 1647 = 1.00000 + 1648 = 1.00000 + 1655 = 1.00000 + 1656 = 1.00000 + 1665 = 1.00000 + 1667 = 1.00000 + 1666 = 1.00000 + 1668 = 1.00000 + 1671 = 1.00000 + 1672 = 1.00000 + 1677 = 1.00000 + 1678 = 1.00000 + 1679 = 1.00000 + 1680 = 1.00000 + 1693 = 1.00000 + 1694 = 1.00000 + 1695 = 1.00000 + 1696 = 1.00000 + 1830 = 1.00000 + 1833 = 1.00000 + 1834 = 1.00000 + 1845 = 1.00000 + 1846 = 1.00000 + 1851 = 1.00000 + 1852 = 1.00000 + 1853 = 1.00000 + 1854 = 1.00000 + 1911 = 1.00000 + 1913 = 1.00000 + 1916 = 1.00000 + 1917 = 1.00000 + 1923 = 1.00000 + 1927 = 1.00000 + 1924 = 1.00000 + 1928 = 1.00000 + 1933 = 1.00000 + 1934 = 1.00000 + 1939 = 1.00000 + 1940 = 1.00000 + 1941 = 1.00000 + 1942 = 1.00000 + 1959 = 1.00000 + 1960 = 1.00000 + 1971 = 1.00000 + 1972 = 1.00000 + 1973 = 1.00000 + 1974 = 1.00000 + 2015 = 1.00000 + 2016 = 1.00000 + 2017 = 1.00000 + 2018 = 1.00000 + 2057 = 1.00000 + 2065 = 1.00000 + 2066 = 1.00000 + 2071 = 1.00000 + 2072 = 1.00000 + 2123 = 1.00000 + 2124 = 1.00000 + 2125 = 1.00000 + 2126 = 1.00000 + 2163 = 1.00000 + 2164 = 1.00000 + 2165 = 1.00000 + 2167 = 1.00000 + 2168 = 1.00000 + 2169 = 1.00000 + 2170 = 1.00000 + 2173 = 1.00000 + 2175 = 1.00000 + 2179 = 1.00000 + 2176 = 1.00000 + 2180 = 1.00000 + 2185 = 1.00000 + 2186 = 1.00000 + 2189 = 1.00000 + 2191 = 1.00000 + 2190 = 1.00000 + 2192 = 1.00000 + 2193 = 1.00000 + 2194 = 1.00000 + 2207 = 1.00000 + 2208 = 1.00000 + 2211 = 1.00000 + 2213 = 1.00000 + 2212 = 1.00000 + 2214 = 1.00000 + 2219 = 1.00000 + 2220 = 1.00000 + 2223 = 1.00000 + 2224 = 1.00000 + 2225 = 1.00000 + 2226 = 1.00000 + 2251 = 1.00000 + 2252 = 1.00000 + 2253 = 1.00000 + 2254 = 1.00000 + 2267 = 1.00000 + 2268 = 1.00000 + 2269 = 1.00000 + 2270 = 1.00000 + 2308 = 1.00000 + 2309 = 1.00000 + 2311 = 1.00000 + 2317 = 1.00000 + 2318 = 1.00000 + 2321 = 1.00000 + 2323 = 1.00000 + 2322 = 1.00000 + 2324 = 1.00000 + 2333 = 1.00000 + 2334 = 1.00000 + 2339 = 1.00000 + 2340 = 1.00000 + 2359 = 1.00000 + 2360 = 1.00000 + 2361 = 1.00000 + 2362 = 1.00000 + 2375 = 1.00000 + 2376 = 1.00000 + 2377 = 1.00000 + 2378 = 1.00000 + 2415 = 1.00000 + 2421 = 1.00000 + 2422 = 1.00000 + 2439 = 1.00000 + 2440 = 1.00000 + 2451 = 1.00000 + 2452 = 1.00000 + 2453 = 1.00000 + 2454 = 1.00000 + 2604 = 1.00000 + 2605 = 1.00000 + 2608 = 1.00000 + 2610 = 1.00000 + 2611 = 1.00000 + 2624 = 1.00000 + 2625 = 1.00000 + 2628 = 1.00000 + 2630 = 1.00000 + 2629 = 1.00000 + 2631 = 1.00000 + 2636 = 1.00000 + 2637 = 1.00000 + 2640 = 1.00000 + 2641 = 1.00000 + 2642 = 1.00000 + 2643 = 1.00000 + 2668 = 1.00000 + 2669 = 1.00000 + 2670 = 1.00000 + 2671 = 1.00000 + 2713 = 1.00000 + 2723 = 1.00000 + 2724 = 1.00000 + 2729 = 1.00000 + 2730 = 1.00000 + 2749 = 1.00000 + 2750 = 1.00000 + 2751 = 1.00000 + 2752 = 1.00000 + 2795 = 1.00000 + 2803 = 1.00000 + 2804 = 1.00000 + 2809 = 1.00000 + 2810 = 1.00000 + 2861 = 1.00000 + 2862 = 1.00000 + 2863 = 1.00000 + 2864 = 1.00000 + 2901 = 1.00000 + 2903 = 1.00000 + 2904 = 1.00000 + 2907 = 1.00000 + 2911 = 1.00000 + 2908 = 1.00000 + 2912 = 1.00000 + 2917 = 1.00000 + 2918 = 1.00000 + 2919 = 1.00000 + 2920 = 1.00000 + 2931 = 1.00000 + 2932 = 1.00000 + 2937 = 1.00000 + 2938 = 1.00000 + 2939 = 1.00000 + 2940 = 1.00000 + 2969 = 1.00000 + 2970 = 1.00000 + 2971 = 1.00000 + 2972 = 1.00000 + 3010 = 1.00000 + 3011 = 1.00000 + 3013 = 1.00000 + 3019 = 1.00000 + 3020 = 1.00000 + 3023 = 1.00000 + 3025 = 1.00000 + 3024 = 1.00000 + 3026 = 1.00000 + 3035 = 1.00000 + 3036 = 1.00000 + 3041 = 1.00000 + 3042 = 1.00000 + 3061 = 1.00000 + 3062 = 1.00000 + 3063 = 1.00000 + 3064 = 1.00000 + 3077 = 1.00000 + 3078 = 1.00000 + 3079 = 1.00000 + 3080 = 1.00000 + 3117 = 1.00000 + 3118 = 1.00000 + 3119 = 1.00000 + 3120 = 1.00000 + 3121 = 1.00000 + 3123 = 1.00000 + 3127 = 1.00000 + 3124 = 1.00000 + 3128 = 1.00000 + 3131 = 1.00000 + 3133 = 1.00000 + 3132 = 1.00000 + 3134 = 1.00000 + 3135 = 1.00000 + 3136 = 1.00000 + 3143 = 1.00000 + 3144 = 1.00000 + 3147 = 1.00000 + 3149 = 1.00000 + 3148 = 1.00000 + 3150 = 1.00000 + 3153 = 1.00000 + 3154 = 1.00000 + 3155 = 1.00000 + 3156 = 1.00000 + 3169 = 1.00000 + 3170 = 1.00000 + 3171 = 1.00000 + 3172 = 1.00000 + 3185 = 1.00000 + 3186 = 1.00000 + 3187 = 1.00000 + 3188 = 1.00000 + 3306 = 1.00000 + 3309 = 1.00000 + 3310 = 1.00000 + 3321 = 1.00000 + 3322 = 1.00000 + 3327 = 1.00000 + 3328 = 1.00000 + 3329 = 1.00000 + 3330 = 1.00000 + 3388 = 1.00000 + 3398 = 1.00000 + 3399 = 1.00000 + 3404 = 1.00000 + 3405 = 1.00000 + 3424 = 1.00000 + 3425 = 1.00000 + 3426 = 1.00000 + 3427 = 1.00000 + 3468 = 1.00000 + 3469 = 1.00000 + 3471 = 1.00000 + 3472 = 1.00000 + 3479 = 1.00000 + 3480 = 1.00000 + 3483 = 1.00000 + 3485 = 1.00000 + 3484 = 1.00000 + 3486 = 1.00000 + 3489 = 1.00000 + 3490 = 1.00000 + 3491 = 1.00000 + 3492 = 1.00000 + 3505 = 1.00000 + 3506 = 1.00000 + 3507 = 1.00000 + 3508 = 1.00000 + 3549 = 1.00000 + 3550 = 1.00000 + 3553 = 1.00000 + 3555 = 1.00000 + 3561 = 1.00000 + 3562 = 1.00000 + 3575 = 1.00000 + 3576 = 1.00000 + 3585 = 1.00000 + 3587 = 1.00000 + 3586 = 1.00000 + 3588 = 1.00000 + 3593 = 1.00000 + 3594 = 1.00000 + 3597 = 1.00000 + 3598 = 1.00000 + 3609 = 1.00000 + 3610 = 1.00000 + 3611 = 1.00000 + 3612 = 1.00000 + 3637 = 1.00000 + 3638 = 1.00000 + 3639 = 1.00000 + 3640 = 1.00000 + 3694 = 1.00000 + 3707 = 1.00000 + 3708 = 1.00000 + 3719 = 1.00000 + 3720 = 1.00000 + 3745 = 1.00000 + 3746 = 1.00000 + 3747 = 1.00000 + 3748 = 1.00000 + 3801 = 1.00000 + 3807 = 1.00000 + 3808 = 1.00000 + 3825 = 1.00000 + 3826 = 1.00000 + 3837 = 1.00000 + 3838 = 1.00000 + 3839 = 1.00000 + 3840 = 1.00000 + 3990 = 1.00000 + 3991 = 1.00000 + 3992 = 1.00000 + 3994 = 1.00000 + 3995 = 1.00000 + 3996 = 1.00000 + 3998 = 1.00000 + 4001 = 1.00000 + 4002 = 1.00000 + 4006 = 1.00000 + 4003 = 1.00000 + 4007 = 1.00000 + 4012 = 1.00000 + 4013 = 1.00000 + 4016 = 1.00000 + 4018 = 1.00000 + 4017 = 1.00000 + 4019 = 1.00000 + 4024 = 1.00000 + 4025 = 1.00000 + 4026 = 1.00000 + 4028 = 1.00000 + 4027 = 1.00000 + 4029 = 1.00000 + 4034 = 1.00000 + 4035 = 1.00000 + 4038 = 1.00000 + 4039 = 1.00000 + 4050 = 1.00000 + 4051 = 1.00000 + 4052 = 1.00000 + 4053 = 1.00000 + 4078 = 1.00000 + 4079 = 1.00000 + 4080 = 1.00000 + 4081 = 1.00000 + 4106 = 1.00000 + 4107 = 1.00000 + 4108 = 1.00000 + 4109 = 1.00000 + 4135 = 1.00000 + 4136 = 1.00000 + 4139 = 1.00000 + 4144 = 1.00000 + 4145 = 1.00000 + 4148 = 1.00000 + 4150 = 1.00000 + 4149 = 1.00000 + 4151 = 1.00000 + 4156 = 1.00000 + 4157 = 1.00000 + 4160 = 1.00000 + 4161 = 1.00000 + 4186 = 1.00000 + 4187 = 1.00000 + 4188 = 1.00000 + 4189 = 1.00000 + 4214 = 1.00000 + 4215 = 1.00000 + 4216 = 1.00000 + 4217 = 1.00000 + 4242 = 1.00000 + 4244 = 1.00000 + 4247 = 1.00000 + 4248 = 1.00000 + 4252 = 1.00000 + 4249 = 1.00000 + 4253 = 1.00000 + 4258 = 1.00000 + 4259 = 1.00000 + 4264 = 1.00000 + 4265 = 1.00000 + 4266 = 1.00000 + 4267 = 1.00000 + 4278 = 1.00000 + 4279 = 1.00000 + 4280 = 1.00000 + 4281 = 1.00000 + 4322 = 1.00000 + 4323 = 1.00000 + 4324 = 1.00000 + 4325 = 1.00000 + 4352 = 1.00000 + 4357 = 1.00000 + 4358 = 1.00000 + 4363 = 1.00000 + 4364 = 1.00000 + 4403 = 1.00000 + 4404 = 1.00000 + 4405 = 1.00000 + 4406 = 1.00000 + 4432 = 1.00000 + 4445 = 1.00000 + 4446 = 1.00000 + 4457 = 1.00000 + 4458 = 1.00000 + 4483 = 1.00000 + 4484 = 1.00000 + 4485 = 1.00000 + 4486 = 1.00000 + 4539 = 1.00000 + 4540 = 1.00000 + 4542 = 1.00000 + 4545 = 1.00000 + 4546 = 1.00000 + 4553 = 1.00000 + 4554 = 1.00000 + 4563 = 1.00000 + 4565 = 1.00000 + 4564 = 1.00000 + 4566 = 1.00000 + 4569 = 1.00000 + 4570 = 1.00000 + 4575 = 1.00000 + 4576 = 1.00000 + 4577 = 1.00000 + 4578 = 1.00000 + 4591 = 1.00000 + 4592 = 1.00000 + 4593 = 1.00000 + 4594 = 1.00000 + 4728 = 1.00000 + 4731 = 1.00000 + 4732 = 1.00000 + 4743 = 1.00000 + 4744 = 1.00000 + 4749 = 1.00000 + 4750 = 1.00000 + 4751 = 1.00000 + 4752 = 1.00000 + 4810 = 1.00000 + 4811 = 1.00000 + 4814 = 1.00000 + 4819 = 1.00000 + 4820 = 1.00000 + 4823 = 1.00000 + 4825 = 1.00000 + 4824 = 1.00000 + 4826 = 1.00000 + 4831 = 1.00000 + 4832 = 1.00000 + 4835 = 1.00000 + 4836 = 1.00000 + 4861 = 1.00000 + 4862 = 1.00000 + 4863 = 1.00000 + 4864 = 1.00000 + 4889 = 1.00000 + 4890 = 1.00000 + 4891 = 1.00000 + 4892 = 1.00000 + 4917 = 1.00000 + 4918 = 1.00000 + 4919 = 1.00000 + 4920 = 1.00000 + 4922 = 1.00000 + 4923 = 1.00000 + 4927 = 1.00000 + 4924 = 1.00000 + 4928 = 1.00000 + 4931 = 1.00000 + 4933 = 1.00000 + 4932 = 1.00000 + 4934 = 1.00000 + 4939 = 1.00000 + 4940 = 1.00000 + 4941 = 1.00000 + 4943 = 1.00000 + 4942 = 1.00000 + 4944 = 1.00000 + 4947 = 1.00000 + 4948 = 1.00000 + 4953 = 1.00000 + 4954 = 1.00000 + 4955 = 1.00000 + 4956 = 1.00000 + 4969 = 1.00000 + 4970 = 1.00000 + 4971 = 1.00000 + 4972 = 1.00000 + 4997 = 1.00000 + 4998 = 1.00000 + 4999 = 1.00000 + 5000 = 1.00000 + 5027 = 1.00000 + 5032 = 1.00000 + 5033 = 1.00000 + 5038 = 1.00000 + 5039 = 1.00000 + 5078 = 1.00000 + 5079 = 1.00000 + 5080 = 1.00000 + 5081 = 1.00000 + 5106 = 1.00000 + 5108 = 1.00000 + 5109 = 1.00000 + 5113 = 1.00000 + 5110 = 1.00000 + 5114 = 1.00000 + 5119 = 1.00000 + 5120 = 1.00000 + 5121 = 1.00000 + 5122 = 1.00000 + 5127 = 1.00000 + 5128 = 1.00000 + 5129 = 1.00000 + 5130 = 1.00000 + 5159 = 1.00000 + 5160 = 1.00000 + 5161 = 1.00000 + 5162 = 1.00000 + 5187 = 1.00000 + 5193 = 1.00000 + 5194 = 1.00000 + 5211 = 1.00000 + 5212 = 1.00000 + 5223 = 1.00000 + 5224 = 1.00000 + 5225 = 1.00000 + 5226 = 1.00000 + 5376 = 1.00000 + 5377 = 1.00000 + 5380 = 1.00000 + 5382 = 1.00000 + 5383 = 1.00000 + 5396 = 1.00000 + 5397 = 1.00000 + 5400 = 1.00000 + 5402 = 1.00000 + 5401 = 1.00000 + 5403 = 1.00000 + 5408 = 1.00000 + 5409 = 1.00000 + 5412 = 1.00000 + 5413 = 1.00000 + 5414 = 1.00000 + 5415 = 1.00000 + 5440 = 1.00000 + 5441 = 1.00000 + 5442 = 1.00000 + 5443 = 1.00000 + 5485 = 1.00000 + 5495 = 1.00000 + 5496 = 1.00000 + 5501 = 1.00000 + 5502 = 1.00000 + 5521 = 1.00000 + 5522 = 1.00000 + 5523 = 1.00000 + 5524 = 1.00000 + 5565 = 1.00000 + 5567 = 1.00000 + 5570 = 1.00000 + 5571 = 1.00000 + 5575 = 1.00000 + 5572 = 1.00000 + 5576 = 1.00000 + 5581 = 1.00000 + 5582 = 1.00000 + 5587 = 1.00000 + 5588 = 1.00000 + 5589 = 1.00000 + 5590 = 1.00000 + 5601 = 1.00000 + 5602 = 1.00000 + 5603 = 1.00000 + 5604 = 1.00000 + 5645 = 1.00000 + 5646 = 1.00000 + 5647 = 1.00000 + 5648 = 1.00000 + 5675 = 1.00000 + 5680 = 1.00000 + 5681 = 1.00000 + 5686 = 1.00000 + 5687 = 1.00000 + 5726 = 1.00000 + 5727 = 1.00000 + 5728 = 1.00000 + 5729 = 1.00000 + 5754 = 1.00000 + 5755 = 1.00000 + 5756 = 1.00000 + 5758 = 1.00000 + 5759 = 1.00000 + 5760 = 1.00000 + 5764 = 1.00000 + 5761 = 1.00000 + 5765 = 1.00000 + 5770 = 1.00000 + 5771 = 1.00000 + 5774 = 1.00000 + 5776 = 1.00000 + 5775 = 1.00000 + 5777 = 1.00000 + 5778 = 1.00000 + 5780 = 1.00000 + 5779 = 1.00000 + 5781 = 1.00000 + 5786 = 1.00000 + 5787 = 1.00000 + 5790 = 1.00000 + 5791 = 1.00000 + 5792 = 1.00000 + 5793 = 1.00000 + 5818 = 1.00000 + 5819 = 1.00000 + 5820 = 1.00000 + 5821 = 1.00000 + 5834 = 1.00000 + 5835 = 1.00000 + 5836 = 1.00000 + 5837 = 1.00000 + 5863 = 1.00000 + 5864 = 1.00000 + 5869 = 1.00000 + 5870 = 1.00000 + 5873 = 1.00000 + 5875 = 1.00000 + 5874 = 1.00000 + 5876 = 1.00000 + 5879 = 1.00000 + 5880 = 1.00000 + 5899 = 1.00000 + 5900 = 1.00000 + 5901 = 1.00000 + 5902 = 1.00000 + 5915 = 1.00000 + 5916 = 1.00000 + 5917 = 1.00000 + 5918 = 1.00000 + 6024 = 1.00000 + 6027 = 1.00000 + 6028 = 1.00000 + 6039 = 1.00000 + 6040 = 1.00000 + 6045 = 1.00000 + 6046 = 1.00000 + 6047 = 1.00000 + 6048 = 1.00000 + 6106 = 1.00000 + 6116 = 1.00000 + 6117 = 1.00000 + 6122 = 1.00000 + 6123 = 1.00000 + 6142 = 1.00000 + 6143 = 1.00000 + 6144 = 1.00000 + 6145 = 1.00000 + 6186 = 1.00000 + 6187 = 1.00000 + 6189 = 1.00000 + 6190 = 1.00000 + 6197 = 1.00000 + 6198 = 1.00000 + 6201 = 1.00000 + 6203 = 1.00000 + 6202 = 1.00000 + 6204 = 1.00000 + 6207 = 1.00000 + 6208 = 1.00000 + 6209 = 1.00000 + 6210 = 1.00000 + 6223 = 1.00000 + 6224 = 1.00000 + 6225 = 1.00000 + 6226 = 1.00000 + 6269 = 1.00000 + 6274 = 1.00000 + 6275 = 1.00000 + 6280 = 1.00000 + 6281 = 1.00000 + 6320 = 1.00000 + 6321 = 1.00000 + 6322 = 1.00000 + 6323 = 1.00000 + 6348 = 1.00000 + 6350 = 1.00000 + 6351 = 1.00000 + 6355 = 1.00000 + 6352 = 1.00000 + 6356 = 1.00000 + 6361 = 1.00000 + 6362 = 1.00000 + 6363 = 1.00000 + 6364 = 1.00000 + 6369 = 1.00000 + 6370 = 1.00000 + 6371 = 1.00000 + 6372 = 1.00000 + 6401 = 1.00000 + 6402 = 1.00000 + 6403 = 1.00000 + 6404 = 1.00000 + 6430 = 1.00000 + 6431 = 1.00000 + 6436 = 1.00000 + 6437 = 1.00000 + 6440 = 1.00000 + 6442 = 1.00000 + 6441 = 1.00000 + 6443 = 1.00000 + 6446 = 1.00000 + 6447 = 1.00000 + 6466 = 1.00000 + 6467 = 1.00000 + 6468 = 1.00000 + 6469 = 1.00000 + 6482 = 1.00000 + 6483 = 1.00000 + 6484 = 1.00000 + 6485 = 1.00000 + 6510 = 1.00000 + 6511 = 1.00000 + 6512 = 1.00000 + 6513 = 1.00000 + 6517 = 1.00000 + 6514 = 1.00000 + 6518 = 1.00000 + 6521 = 1.00000 + 6523 = 1.00000 + 6522 = 1.00000 + 6524 = 1.00000 + 6525 = 1.00000 + 6527 = 1.00000 + 6526 = 1.00000 + 6528 = 1.00000 + 6531 = 1.00000 + 6532 = 1.00000 + 6533 = 1.00000 + 6534 = 1.00000 + 6547 = 1.00000 + 6548 = 1.00000 + 6549 = 1.00000 + 6550 = 1.00000 + 6563 = 1.00000 + 6564 = 1.00000 + 6565 = 1.00000 + 6566 = 1.00000 diff --git a/tests/parsed_dirichlet_bcs_08.cc b/tests/parsed_dirichlet_bcs_08.cc new file mode 100644 index 00000000..8b942227 --- /dev/null +++ b/tests/parsed_dirichlet_bcs_08.cc @@ -0,0 +1,125 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2007 - 2015 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + + +// check the creation of inhomogeneous normal-flux boundary conditions +// for a finite element that consists of only a single set of vector +// components (i.e. it has dim components) + +#include "tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "utilities.h" +#include "parameter_acceptor.h" +#include "parsed_dirichlet_bcs.h" + + +template +void test (const Triangulation &tr, + const FiniteElement &fe) +{ + DoFHandler dof(tr); + dof.distribute_dofs(fe); + deallog << "FE=" << fe.get_name() + << std::endl; + + ConstraintMatrix cm; + + + ParsedDirichletBCs parsed_dirichlet("ParsedDirichletBCs", + (dim==2?"u,u":"u,u,u"), + (dim==2?"0=uN % 1=uN % 2=uN % 3=uN" :"0=uN % 1=uN % 2=uN % 3=uN % 4=uN % 5=uN"), + (dim==2?"0=0;0 % 1=0;0 % 2=0;0 % 3=0;0" :"0=0;0;0 % 1=0;0;0 % 2=0;0;0 % 3=0;0;0 % 4=0;0;0 % 5=0;0;0")); + + ParameterAcceptor::initialize(); + parsed_dirichlet.compute_nonzero_normal_flux_constraints(dof,cm); + //parsed_dirichlet.compute_no_normal_flux_constraints(dof,cm); + cm.print (deallog.get_file_stream ()); + + //Get the location of all boundary dofs + std::vector face_dofs; + const std::vector > & + unit_support_points = fe.get_unit_face_support_points(); + Quadrature quadrature(unit_support_points); + FEFaceValues fe_face_values(fe, quadrature, update_q_points); + typename DoFHandler::active_cell_iterator + cell = dof.begin_active(), + endc = dof.end(); + for (; cell!=endc; ++cell) + for (unsigned int face_no=0; face_no < GeometryInfo::faces_per_cell; + ++face_no) + if (cell->face(face_no)->at_boundary()) + { + typename DoFHandler::face_iterator face = cell->face(face_no); + face_dofs.resize (fe.dofs_per_face); + face->get_dof_indices (face_dofs); + + fe_face_values.reinit(cell, face_no); + for (unsigned int i=0; i +void test_hyper_cube() +{ + Triangulation tr; + GridGenerator::hyper_cube(tr); + + for (unsigned int i=0; i::faces_per_cell; ++i) + tr.begin_active()->face(i)->set_boundary_id (i); + + tr.refine_global(2); + + for (unsigned int degree=1; degree<4; ++degree) + { + FESystem fe (FE_Q(degree), dim); + test(tr, fe); + } +} + + +int main() +{ + initlog(); + deallog << std::setprecision (2); + deallog << std::fixed; + deallog.depth_console (0); + deallog.threshold_double(1.e-12); + + test_hyper_cube<2>(); + test_hyper_cube<3>(); +} diff --git a/tests/parsed_dirichlet_bcs_08.output b/tests/parsed_dirichlet_bcs_08.output new file mode 100644 index 00000000..fd1c370f --- /dev/null +++ b/tests/parsed_dirichlet_bcs_08.output @@ -0,0 +1,1765 @@ + +DEAL::FE=FESystem<2>[FE_Q<2>(1)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 9 = 0 + 12 = 0 + 19 = 0 + 22 = 0 + 23 = 0 + 24 = 0 + 28 = 0 + 30 = 0 + 36 = 0 + 37 = 0 + 39 = 0 + 41 = 0 + 44 = 0 + 47 = 0 + 48 = 0 + 49 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(2)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 8 = 0 + 13 = 0 + 19 = 0 + 25 = 0 + 30 = 0 + 34 = 0 + 51 = 0 + 57 = 0 + 62 = 0 + 63 = 0 + 64 = 0 + 66 = 0 + 69 = 0 + 82 = 0 + 84 = 0 + 90 = 0 + 94 = 0 + 110 = 0 + 111 = 0 + 113 = 0 + 114 = 0 + 119 = 0 + 123 = 0 + 127 = 0 + 138 = 0 + 140 = 0 + 147 = 0 + 151 = 0 + 154 = 0 + 155 = 0 + 156 = 0 + 159 = 0 +DEAL::FE=FESystem<2>[FE_Q<2>(3)^2] + 0 = 0 + 1 = 0 + 3 = 0 + 4 = 0 + 8 = 0 + 9 = 0 + 18 = 0 + 19 = 0 + 33 = 0 + 42 = 0 + 43 = 0 + 56 = 0 + 60 = 0 + 61 = 0 + 99 = 0 + 108 = 0 + 109 = 0 + 122 = 0 + 123 = 0 + 124 = 0 + 126 = 0 + 127 = 0 + 132 = 0 + 133 = 0 + 164 = 0 + 166 = 0 + 167 = 0 + 182 = 0 + 186 = 0 + 187 = 0 + 224 = 0 + 225 = 0 + 227 = 0 + 228 = 0 + 229 = 0 + 238 = 0 + 239 = 0 + 249 = 0 + 256 = 0 + 257 = 0 + 284 = 0 + 286 = 0 + 287 = 0 + 303 = 0 + 310 = 0 + 311 = 0 + 320 = 0 + 321 = 0 + 322 = 0 + 323 = 0 + 328 = 0 + 329 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(1)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 25 = 0 + 26 = 0 + 29 = 0 + 31 = 0 + 36 = 0 + 38 = 0 + 41 = 0 + 42 = 0 + 50 = 0 + 54 = 0 + 55 = 0 + 58 = 0 + 60 = 0 + 67 = 0 + 72 = 0 + 82 = 0 + 83 = 0 + 86 = 0 + 88 = 0 + 93 = 0 + 94 = 0 + 95 = 0 + 96 = 0 + 98 = 0 + 99 = 0 + 100 = 0 + 102 = 0 + 107 = 0 + 111 = 0 + 113 = 0 + 114 = 0 + 118 = 0 + 123 = 0 + 124 = 0 + 126 = 0 + 132 = 0 + 135 = 0 + 137 = 0 + 140 = 0 + 141 = 0 + 149 = 0 + 153 = 0 + 154 = 0 + 155 = 0 + 157 = 0 + 158 = 0 + 159 = 0 + 160 = 0 + 163 = 0 + 166 = 0 + 167 = 0 + 169 = 0 + 171 = 0 + 180 = 0 + 181 = 0 + 184 = 0 + 187 = 0 + 191 = 0 + 195 = 0 + 197 = 0 + 198 = 0 + 202 = 0 + 203 = 0 + 205 = 0 + 207 = 0 + 208 = 0 + 209 = 0 + 210 = 0 + 211 = 0 + 216 = 0 + 220 = 0 + 222 = 0 + 223 = 0 + 225 = 0 + 226 = 0 + 229 = 0 + 231 = 0 + 238 = 0 + 243 = 0 + 252 = 0 + 253 = 0 + 254 = 0 + 256 = 0 + 257 = 0 + 258 = 0 + 260 = 0 + 263 = 0 + 265 = 0 + 266 = 0 + 269 = 0 + 270 = 0 + 272 = 0 + 275 = 0 + 278 = 0 + 280 = 0 + 285 = 0 + 286 = 0 + 288 = 0 + 294 = 0 + 298 = 0 + 299 = 0 + 302 = 0 + 303 = 0 + 304 = 0 + 305 = 0 + 306 = 0 + 308 = 0 + 311 = 0 + 312 = 0 + 314 = 0 + 315 = 0 + 324 = 0 + 325 = 0 + 328 = 0 + 331 = 0 + 333 = 0 + 335 = 0 + 338 = 0 + 341 = 0 + 342 = 0 + 343 = 0 + 344 = 0 + 346 = 0 + 347 = 0 + 349 = 0 + 350 = 0 + 354 = 0 + 358 = 0 + 360 = 0 + 361 = 0 + 365 = 0 + 366 = 0 + 368 = 0 + 370 = 0 + 371 = 0 + 372 = 0 + 373 = 0 + 374 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(2)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 24 = 0 + 26 = 0 + 29 = 0 + 31 = 0 + 32 = 0 + 35 = 0 + 36 = 0 + 43 = 0 + 48 = 0 + 49 = 0 + 52 = 0 + 54 = 0 + 60 = 0 + 67 = 0 + 74 = 0 + 82 = 0 + 83 = 0 + 86 = 0 + 88 = 0 + 95 = 0 + 97 = 0 + 98 = 0 + 101 = 0 + 106 = 0 + 112 = 0 + 121 = 0 + 128 = 0 + 135 = 0 + 137 = 0 + 140 = 0 + 141 = 0 + 147 = 0 + 149 = 0 + 152 = 0 + 155 = 0 + 156 = 0 + 165 = 0 + 171 = 0 + 182 = 0 + 191 = 0 + 197 = 0 + 200 = 0 + 218 = 0 + 225 = 0 + 226 = 0 + 229 = 0 + 231 = 0 + 237 = 0 + 244 = 0 + 249 = 0 + 250 = 0 + 253 = 0 + 255 = 0 + 261 = 0 + 268 = 0 + 280 = 0 + 289 = 0 + 295 = 0 + 304 = 0 + 315 = 0 + 321 = 0 + 330 = 0 + 336 = 0 + 376 = 0 + 377 = 0 + 380 = 0 + 382 = 0 + 389 = 0 + 391 = 0 + 392 = 0 + 395 = 0 + 400 = 0 + 406 = 0 + 415 = 0 + 422 = 0 + 429 = 0 + 430 = 0 + 431 = 0 + 432 = 0 + 434 = 0 + 435 = 0 + 436 = 0 + 438 = 0 + 441 = 0 + 443 = 0 + 445 = 0 + 446 = 0 + 449 = 0 + 450 = 0 + 454 = 0 + 459 = 0 + 460 = 0 + 462 = 0 + 465 = 0 + 469 = 0 + 476 = 0 + 485 = 0 + 491 = 0 + 494 = 0 + 512 = 0 + 519 = 0 + 521 = 0 + 522 = 0 + 525 = 0 + 527 = 0 + 530 = 0 + 531 = 0 + 537 = 0 + 540 = 0 + 548 = 0 + 556 = 0 + 565 = 0 + 571 = 0 + 580 = 0 + 591 = 0 + 592 = 0 + 594 = 0 + 597 = 0 + 601 = 0 + 606 = 0 + 607 = 0 + 609 = 0 + 612 = 0 + 616 = 0 + 651 = 0 + 654 = 0 + 660 = 0 + 663 = 0 + 675 = 0 + 677 = 0 + 680 = 0 + 681 = 0 + 687 = 0 + 689 = 0 + 692 = 0 + 695 = 0 + 696 = 0 + 705 = 0 + 711 = 0 + 722 = 0 + 731 = 0 + 737 = 0 + 740 = 0 + 758 = 0 + 765 = 0 + 766 = 0 + 767 = 0 + 769 = 0 + 770 = 0 + 771 = 0 + 772 = 0 + 775 = 0 + 777 = 0 + 779 = 0 + 782 = 0 + 784 = 0 + 785 = 0 + 786 = 0 + 793 = 0 + 795 = 0 + 796 = 0 + 799 = 0 + 801 = 0 + 808 = 0 + 812 = 0 + 820 = 0 + 821 = 0 + 823 = 0 + 827 = 0 + 829 = 0 + 830 = 0 + 835 = 0 + 838 = 0 + 844 = 0 + 848 = 0 + 855 = 0 + 861 = 0 + 870 = 0 + 876 = 0 + 915 = 0 + 916 = 0 + 919 = 0 + 921 = 0 + 928 = 0 + 930 = 0 + 931 = 0 + 934 = 0 + 936 = 0 + 943 = 0 + 952 = 0 + 958 = 0 + 961 = 0 + 967 = 0 + 977 = 0 + 983 = 0 + 986 = 0 + 1004 = 0 + 1011 = 0 + 1013 = 0 + 1014 = 0 + 1017 = 0 + 1019 = 0 + 1022 = 0 + 1023 = 0 + 1029 = 0 + 1032 = 0 + 1040 = 0 + 1048 = 0 + 1049 = 0 + 1051 = 0 + 1055 = 0 + 1057 = 0 + 1058 = 0 + 1063 = 0 + 1066 = 0 + 1072 = 0 + 1076 = 0 + 1083 = 0 + 1084 = 0 + 1085 = 0 + 1086 = 0 + 1087 = 0 + 1089 = 0 + 1091 = 0 + 1093 = 0 + 1094 = 0 + 1095 = 0 + 1099 = 0 + 1101 = 0 + 1102 = 0 + 1104 = 0 + 1108 = 0 + 1112 = 0 + 1143 = 0 + 1146 = 0 + 1152 = 0 + 1155 = 0 + 1168 = 0 + 1174 = 0 + 1177 = 0 + 1183 = 0 + 1191 = 0 + 1192 = 0 + 1194 = 0 + 1198 = 0 + 1200 = 0 + 1201 = 0 + 1203 = 0 + 1207 = 0 + 1215 = 0 + 1216 = 0 + 1219 = 0 + 1221 = 0 + 1227 = 0 + 1234 = 0 + 1239 = 0 + 1240 = 0 + 1243 = 0 + 1245 = 0 + 1251 = 0 + 1258 = 0 + 1270 = 0 + 1279 = 0 + 1285 = 0 + 1294 = 0 + 1305 = 0 + 1311 = 0 + 1320 = 0 + 1326 = 0 + 1365 = 0 + 1366 = 0 + 1367 = 0 + 1369 = 0 + 1370 = 0 + 1371 = 0 + 1373 = 0 + 1376 = 0 + 1377 = 0 + 1379 = 0 + 1382 = 0 + 1384 = 0 + 1385 = 0 + 1388 = 0 + 1389 = 0 + 1390 = 0 + 1393 = 0 + 1395 = 0 + 1401 = 0 + 1408 = 0 + 1415 = 0 + 1420 = 0 + 1421 = 0 + 1424 = 0 + 1427 = 0 + 1429 = 0 + 1430 = 0 + 1433 = 0 + 1435 = 0 + 1444 = 0 + 1451 = 0 + 1455 = 0 + 1457 = 0 + 1460 = 0 + 1461 = 0 + 1463 = 0 + 1466 = 0 + 1469 = 0 + 1470 = 0 + 1476 = 0 + 1487 = 0 + 1493 = 0 + 1496 = 0 + 1499 = 0 + 1511 = 0 + 1516 = 0 + 1525 = 0 + 1531 = 0 + 1540 = 0 + 1551 = 0 + 1552 = 0 + 1554 = 0 + 1557 = 0 + 1561 = 0 + 1566 = 0 + 1567 = 0 + 1569 = 0 + 1572 = 0 + 1576 = 0 + 1611 = 0 + 1614 = 0 + 1620 = 0 + 1623 = 0 + 1636 = 0 + 1637 = 0 + 1640 = 0 + 1643 = 0 + 1645 = 0 + 1646 = 0 + 1649 = 0 + 1651 = 0 + 1660 = 0 + 1667 = 0 + 1671 = 0 + 1672 = 0 + 1673 = 0 + 1674 = 0 + 1676 = 0 + 1677 = 0 + 1679 = 0 + 1681 = 0 + 1682 = 0 + 1685 = 0 + 1686 = 0 + 1687 = 0 + 1689 = 0 + 1692 = 0 + 1696 = 0 + 1703 = 0 + 1709 = 0 + 1712 = 0 + 1715 = 0 + 1727 = 0 + 1731 = 0 + 1733 = 0 + 1734 = 0 + 1736 = 0 + 1739 = 0 + 1740 = 0 + 1743 = 0 + 1751 = 0 + 1755 = 0 + 1761 = 0 + 1770 = 0 + 1776 = 0 + 1815 = 0 + 1816 = 0 + 1819 = 0 + 1821 = 0 + 1828 = 0 + 1830 = 0 + 1831 = 0 + 1834 = 0 + 1836 = 0 + 1843 = 0 + 1852 = 0 + 1858 = 0 + 1861 = 0 + 1867 = 0 + 1875 = 0 + 1877 = 0 + 1880 = 0 + 1881 = 0 + 1883 = 0 + 1886 = 0 + 1889 = 0 + 1890 = 0 + 1896 = 0 + 1907 = 0 + 1913 = 0 + 1916 = 0 + 1919 = 0 + 1931 = 0 + 1935 = 0 + 1936 = 0 + 1937 = 0 + 1939 = 0 + 1940 = 0 + 1941 = 0 + 1943 = 0 + 1946 = 0 + 1948 = 0 + 1949 = 0 + 1950 = 0 + 1951 = 0 + 1954 = 0 + 1956 = 0 + 1963 = 0 + 1967 = 0 + 1972 = 0 + 1973 = 0 + 1976 = 0 + 1978 = 0 + 1979 = 0 + 1981 = 0 + 1987 = 0 + 1991 = 0 + 2019 = 0 + 2022 = 0 + 2028 = 0 + 2031 = 0 + 2044 = 0 + 2050 = 0 + 2053 = 0 + 2059 = 0 + 2067 = 0 + 2068 = 0 + 2070 = 0 + 2074 = 0 + 2076 = 0 + 2077 = 0 + 2079 = 0 + 2083 = 0 + 2093 = 0 + 2096 = 0 + 2099 = 0 + 2111 = 0 + 2115 = 0 + 2117 = 0 + 2118 = 0 + 2120 = 0 + 2123 = 0 + 2124 = 0 + 2127 = 0 + 2135 = 0 + 2140 = 0 + 2141 = 0 + 2144 = 0 + 2146 = 0 + 2147 = 0 + 2149 = 0 + 2155 = 0 + 2159 = 0 + 2163 = 0 + 2164 = 0 + 2165 = 0 + 2166 = 0 + 2168 = 0 + 2170 = 0 + 2171 = 0 + 2172 = 0 + 2173 = 0 + 2175 = 0 + 2179 = 0 + 2183 = 0 +DEAL::FE=FESystem<3>[FE_Q<3>(3)^3] + 0 = 0 + 1 = 0 + 2 = 0 + 4 = 0 + 5 = 0 + 6 = 0 + 8 = 0 + 11 = 0 + 12 = 0 + 13 = 0 + 16 = 0 + 18 = 0 + 24 = 0 + 28 = 0 + 25 = 0 + 29 = 0 + 34 = 0 + 35 = 0 + 38 = 0 + 40 = 0 + 39 = 0 + 41 = 0 + 46 = 0 + 47 = 0 + 48 = 0 + 49 = 0 + 62 = 0 + 63 = 0 + 72 = 0 + 74 = 0 + 73 = 0 + 75 = 0 + 80 = 0 + 81 = 0 + 84 = 0 + 85 = 0 + 96 = 0 + 97 = 0 + 98 = 0 + 99 = 0 + 124 = 0 + 125 = 0 + 126 = 0 + 127 = 0 + 152 = 0 + 153 = 0 + 154 = 0 + 155 = 0 + 193 = 0 + 194 = 0 + 197 = 0 + 199 = 0 + 208 = 0 + 209 = 0 + 212 = 0 + 214 = 0 + 213 = 0 + 215 = 0 + 220 = 0 + 221 = 0 + 230 = 0 + 231 = 0 + 242 = 0 + 243 = 0 + 268 = 0 + 269 = 0 + 270 = 0 + 271 = 0 + 296 = 0 + 297 = 0 + 298 = 0 + 299 = 0 + 336 = 0 + 338 = 0 + 341 = 0 + 342 = 0 + 348 = 0 + 352 = 0 + 349 = 0 + 353 = 0 + 358 = 0 + 359 = 0 + 364 = 0 + 365 = 0 + 366 = 0 + 367 = 0 + 384 = 0 + 385 = 0 + 396 = 0 + 397 = 0 + 398 = 0 + 399 = 0 + 440 = 0 + 441 = 0 + 442 = 0 + 443 = 0 + 482 = 0 + 490 = 0 + 491 = 0 + 496 = 0 + 497 = 0 + 548 = 0 + 549 = 0 + 550 = 0 + 551 = 0 + 588 = 0 + 589 = 0 + 592 = 0 + 594 = 0 + 600 = 0 + 601 = 0 + 614 = 0 + 615 = 0 + 624 = 0 + 626 = 0 + 625 = 0 + 627 = 0 + 632 = 0 + 633 = 0 + 636 = 0 + 637 = 0 + 648 = 0 + 649 = 0 + 650 = 0 + 651 = 0 + 676 = 0 + 677 = 0 + 678 = 0 + 679 = 0 + 733 = 0 + 746 = 0 + 747 = 0 + 758 = 0 + 759 = 0 + 784 = 0 + 785 = 0 + 786 = 0 + 787 = 0 + 840 = 0 + 846 = 0 + 847 = 0 + 864 = 0 + 865 = 0 + 876 = 0 + 877 = 0 + 878 = 0 + 879 = 0 + 1030 = 0 + 1031 = 0 + 1034 = 0 + 1036 = 0 + 1045 = 0 + 1046 = 0 + 1049 = 0 + 1051 = 0 + 1050 = 0 + 1052 = 0 + 1057 = 0 + 1058 = 0 + 1067 = 0 + 1068 = 0 + 1079 = 0 + 1080 = 0 + 1105 = 0 + 1106 = 0 + 1107 = 0 + 1108 = 0 + 1133 = 0 + 1134 = 0 + 1135 = 0 + 1136 = 0 + 1173 = 0 + 1174 = 0 + 1175 = 0 + 1176 = 0 + 1178 = 0 + 1179 = 0 + 1180 = 0 + 1182 = 0 + 1185 = 0 + 1189 = 0 + 1186 = 0 + 1190 = 0 + 1193 = 0 + 1195 = 0 + 1194 = 0 + 1196 = 0 + 1201 = 0 + 1202 = 0 + 1203 = 0 + 1204 = 0 + 1211 = 0 + 1212 = 0 + 1221 = 0 + 1223 = 0 + 1222 = 0 + 1224 = 0 + 1227 = 0 + 1228 = 0 + 1233 = 0 + 1234 = 0 + 1235 = 0 + 1236 = 0 + 1249 = 0 + 1250 = 0 + 1251 = 0 + 1252 = 0 + 1277 = 0 + 1278 = 0 + 1279 = 0 + 1280 = 0 + 1319 = 0 + 1327 = 0 + 1328 = 0 + 1333 = 0 + 1334 = 0 + 1385 = 0 + 1386 = 0 + 1387 = 0 + 1388 = 0 + 1425 = 0 + 1427 = 0 + 1428 = 0 + 1431 = 0 + 1435 = 0 + 1432 = 0 + 1436 = 0 + 1441 = 0 + 1442 = 0 + 1443 = 0 + 1444 = 0 + 1455 = 0 + 1456 = 0 + 1461 = 0 + 1462 = 0 + 1463 = 0 + 1464 = 0 + 1493 = 0 + 1494 = 0 + 1495 = 0 + 1496 = 0 + 1534 = 0 + 1547 = 0 + 1548 = 0 + 1559 = 0 + 1560 = 0 + 1585 = 0 + 1586 = 0 + 1587 = 0 + 1588 = 0 + 1641 = 0 + 1642 = 0 + 1644 = 0 + 1647 = 0 + 1648 = 0 + 1655 = 0 + 1656 = 0 + 1665 = 0 + 1667 = 0 + 1666 = 0 + 1668 = 0 + 1671 = 0 + 1672 = 0 + 1677 = 0 + 1678 = 0 + 1679 = 0 + 1680 = 0 + 1693 = 0 + 1694 = 0 + 1695 = 0 + 1696 = 0 + 1830 = 0 + 1833 = 0 + 1834 = 0 + 1845 = 0 + 1846 = 0 + 1851 = 0 + 1852 = 0 + 1853 = 0 + 1854 = 0 + 1911 = 0 + 1913 = 0 + 1916 = 0 + 1917 = 0 + 1923 = 0 + 1927 = 0 + 1924 = 0 + 1928 = 0 + 1933 = 0 + 1934 = 0 + 1939 = 0 + 1940 = 0 + 1941 = 0 + 1942 = 0 + 1959 = 0 + 1960 = 0 + 1971 = 0 + 1972 = 0 + 1973 = 0 + 1974 = 0 + 2015 = 0 + 2016 = 0 + 2017 = 0 + 2018 = 0 + 2057 = 0 + 2065 = 0 + 2066 = 0 + 2071 = 0 + 2072 = 0 + 2123 = 0 + 2124 = 0 + 2125 = 0 + 2126 = 0 + 2163 = 0 + 2164 = 0 + 2165 = 0 + 2167 = 0 + 2168 = 0 + 2169 = 0 + 2170 = 0 + 2173 = 0 + 2175 = 0 + 2179 = 0 + 2176 = 0 + 2180 = 0 + 2185 = 0 + 2186 = 0 + 2189 = 0 + 2191 = 0 + 2190 = 0 + 2192 = 0 + 2193 = 0 + 2194 = 0 + 2207 = 0 + 2208 = 0 + 2211 = 0 + 2213 = 0 + 2212 = 0 + 2214 = 0 + 2219 = 0 + 2220 = 0 + 2223 = 0 + 2224 = 0 + 2225 = 0 + 2226 = 0 + 2251 = 0 + 2252 = 0 + 2253 = 0 + 2254 = 0 + 2267 = 0 + 2268 = 0 + 2269 = 0 + 2270 = 0 + 2308 = 0 + 2309 = 0 + 2311 = 0 + 2317 = 0 + 2318 = 0 + 2321 = 0 + 2323 = 0 + 2322 = 0 + 2324 = 0 + 2333 = 0 + 2334 = 0 + 2339 = 0 + 2340 = 0 + 2359 = 0 + 2360 = 0 + 2361 = 0 + 2362 = 0 + 2375 = 0 + 2376 = 0 + 2377 = 0 + 2378 = 0 + 2415 = 0 + 2421 = 0 + 2422 = 0 + 2439 = 0 + 2440 = 0 + 2451 = 0 + 2452 = 0 + 2453 = 0 + 2454 = 0 + 2604 = 0 + 2605 = 0 + 2608 = 0 + 2610 = 0 + 2611 = 0 + 2624 = 0 + 2625 = 0 + 2628 = 0 + 2630 = 0 + 2629 = 0 + 2631 = 0 + 2636 = 0 + 2637 = 0 + 2640 = 0 + 2641 = 0 + 2642 = 0 + 2643 = 0 + 2668 = 0 + 2669 = 0 + 2670 = 0 + 2671 = 0 + 2713 = 0 + 2723 = 0 + 2724 = 0 + 2729 = 0 + 2730 = 0 + 2749 = 0 + 2750 = 0 + 2751 = 0 + 2752 = 0 + 2795 = 0 + 2803 = 0 + 2804 = 0 + 2809 = 0 + 2810 = 0 + 2861 = 0 + 2862 = 0 + 2863 = 0 + 2864 = 0 + 2901 = 0 + 2903 = 0 + 2904 = 0 + 2907 = 0 + 2911 = 0 + 2908 = 0 + 2912 = 0 + 2917 = 0 + 2918 = 0 + 2919 = 0 + 2920 = 0 + 2931 = 0 + 2932 = 0 + 2937 = 0 + 2938 = 0 + 2939 = 0 + 2940 = 0 + 2969 = 0 + 2970 = 0 + 2971 = 0 + 2972 = 0 + 3010 = 0 + 3011 = 0 + 3013 = 0 + 3019 = 0 + 3020 = 0 + 3023 = 0 + 3025 = 0 + 3024 = 0 + 3026 = 0 + 3035 = 0 + 3036 = 0 + 3041 = 0 + 3042 = 0 + 3061 = 0 + 3062 = 0 + 3063 = 0 + 3064 = 0 + 3077 = 0 + 3078 = 0 + 3079 = 0 + 3080 = 0 + 3117 = 0 + 3118 = 0 + 3119 = 0 + 3120 = 0 + 3121 = 0 + 3123 = 0 + 3127 = 0 + 3124 = 0 + 3128 = 0 + 3131 = 0 + 3133 = 0 + 3132 = 0 + 3134 = 0 + 3135 = 0 + 3136 = 0 + 3143 = 0 + 3144 = 0 + 3147 = 0 + 3149 = 0 + 3148 = 0 + 3150 = 0 + 3153 = 0 + 3154 = 0 + 3155 = 0 + 3156 = 0 + 3169 = 0 + 3170 = 0 + 3171 = 0 + 3172 = 0 + 3185 = 0 + 3186 = 0 + 3187 = 0 + 3188 = 0 + 3306 = 0 + 3309 = 0 + 3310 = 0 + 3321 = 0 + 3322 = 0 + 3327 = 0 + 3328 = 0 + 3329 = 0 + 3330 = 0 + 3388 = 0 + 3398 = 0 + 3399 = 0 + 3404 = 0 + 3405 = 0 + 3424 = 0 + 3425 = 0 + 3426 = 0 + 3427 = 0 + 3468 = 0 + 3469 = 0 + 3471 = 0 + 3472 = 0 + 3479 = 0 + 3480 = 0 + 3483 = 0 + 3485 = 0 + 3484 = 0 + 3486 = 0 + 3489 = 0 + 3490 = 0 + 3491 = 0 + 3492 = 0 + 3505 = 0 + 3506 = 0 + 3507 = 0 + 3508 = 0 + 3549 = 0 + 3550 = 0 + 3553 = 0 + 3555 = 0 + 3561 = 0 + 3562 = 0 + 3575 = 0 + 3576 = 0 + 3585 = 0 + 3587 = 0 + 3586 = 0 + 3588 = 0 + 3593 = 0 + 3594 = 0 + 3597 = 0 + 3598 = 0 + 3609 = 0 + 3610 = 0 + 3611 = 0 + 3612 = 0 + 3637 = 0 + 3638 = 0 + 3639 = 0 + 3640 = 0 + 3694 = 0 + 3707 = 0 + 3708 = 0 + 3719 = 0 + 3720 = 0 + 3745 = 0 + 3746 = 0 + 3747 = 0 + 3748 = 0 + 3801 = 0 + 3807 = 0 + 3808 = 0 + 3825 = 0 + 3826 = 0 + 3837 = 0 + 3838 = 0 + 3839 = 0 + 3840 = 0 + 3990 = 0 + 3991 = 0 + 3992 = 0 + 3994 = 0 + 3995 = 0 + 3996 = 0 + 3998 = 0 + 4001 = 0 + 4002 = 0 + 4006 = 0 + 4003 = 0 + 4007 = 0 + 4012 = 0 + 4013 = 0 + 4016 = 0 + 4018 = 0 + 4017 = 0 + 4019 = 0 + 4024 = 0 + 4025 = 0 + 4026 = 0 + 4028 = 0 + 4027 = 0 + 4029 = 0 + 4034 = 0 + 4035 = 0 + 4038 = 0 + 4039 = 0 + 4050 = 0 + 4051 = 0 + 4052 = 0 + 4053 = 0 + 4078 = 0 + 4079 = 0 + 4080 = 0 + 4081 = 0 + 4106 = 0 + 4107 = 0 + 4108 = 0 + 4109 = 0 + 4135 = 0 + 4136 = 0 + 4139 = 0 + 4144 = 0 + 4145 = 0 + 4148 = 0 + 4150 = 0 + 4149 = 0 + 4151 = 0 + 4156 = 0 + 4157 = 0 + 4160 = 0 + 4161 = 0 + 4186 = 0 + 4187 = 0 + 4188 = 0 + 4189 = 0 + 4214 = 0 + 4215 = 0 + 4216 = 0 + 4217 = 0 + 4242 = 0 + 4244 = 0 + 4247 = 0 + 4248 = 0 + 4252 = 0 + 4249 = 0 + 4253 = 0 + 4258 = 0 + 4259 = 0 + 4264 = 0 + 4265 = 0 + 4266 = 0 + 4267 = 0 + 4278 = 0 + 4279 = 0 + 4280 = 0 + 4281 = 0 + 4322 = 0 + 4323 = 0 + 4324 = 0 + 4325 = 0 + 4352 = 0 + 4357 = 0 + 4358 = 0 + 4363 = 0 + 4364 = 0 + 4403 = 0 + 4404 = 0 + 4405 = 0 + 4406 = 0 + 4432 = 0 + 4445 = 0 + 4446 = 0 + 4457 = 0 + 4458 = 0 + 4483 = 0 + 4484 = 0 + 4485 = 0 + 4486 = 0 + 4539 = 0 + 4540 = 0 + 4542 = 0 + 4545 = 0 + 4546 = 0 + 4553 = 0 + 4554 = 0 + 4563 = 0 + 4565 = 0 + 4564 = 0 + 4566 = 0 + 4569 = 0 + 4570 = 0 + 4575 = 0 + 4576 = 0 + 4577 = 0 + 4578 = 0 + 4591 = 0 + 4592 = 0 + 4593 = 0 + 4594 = 0 + 4728 = 0 + 4731 = 0 + 4732 = 0 + 4743 = 0 + 4744 = 0 + 4749 = 0 + 4750 = 0 + 4751 = 0 + 4752 = 0 + 4810 = 0 + 4811 = 0 + 4814 = 0 + 4819 = 0 + 4820 = 0 + 4823 = 0 + 4825 = 0 + 4824 = 0 + 4826 = 0 + 4831 = 0 + 4832 = 0 + 4835 = 0 + 4836 = 0 + 4861 = 0 + 4862 = 0 + 4863 = 0 + 4864 = 0 + 4889 = 0 + 4890 = 0 + 4891 = 0 + 4892 = 0 + 4917 = 0 + 4918 = 0 + 4919 = 0 + 4920 = 0 + 4922 = 0 + 4923 = 0 + 4927 = 0 + 4924 = 0 + 4928 = 0 + 4931 = 0 + 4933 = 0 + 4932 = 0 + 4934 = 0 + 4939 = 0 + 4940 = 0 + 4941 = 0 + 4943 = 0 + 4942 = 0 + 4944 = 0 + 4947 = 0 + 4948 = 0 + 4953 = 0 + 4954 = 0 + 4955 = 0 + 4956 = 0 + 4969 = 0 + 4970 = 0 + 4971 = 0 + 4972 = 0 + 4997 = 0 + 4998 = 0 + 4999 = 0 + 5000 = 0 + 5027 = 0 + 5032 = 0 + 5033 = 0 + 5038 = 0 + 5039 = 0 + 5078 = 0 + 5079 = 0 + 5080 = 0 + 5081 = 0 + 5106 = 0 + 5108 = 0 + 5109 = 0 + 5113 = 0 + 5110 = 0 + 5114 = 0 + 5119 = 0 + 5120 = 0 + 5121 = 0 + 5122 = 0 + 5127 = 0 + 5128 = 0 + 5129 = 0 + 5130 = 0 + 5159 = 0 + 5160 = 0 + 5161 = 0 + 5162 = 0 + 5187 = 0 + 5193 = 0 + 5194 = 0 + 5211 = 0 + 5212 = 0 + 5223 = 0 + 5224 = 0 + 5225 = 0 + 5226 = 0 + 5376 = 0 + 5377 = 0 + 5380 = 0 + 5382 = 0 + 5383 = 0 + 5396 = 0 + 5397 = 0 + 5400 = 0 + 5402 = 0 + 5401 = 0 + 5403 = 0 + 5408 = 0 + 5409 = 0 + 5412 = 0 + 5413 = 0 + 5414 = 0 + 5415 = 0 + 5440 = 0 + 5441 = 0 + 5442 = 0 + 5443 = 0 + 5485 = 0 + 5495 = 0 + 5496 = 0 + 5501 = 0 + 5502 = 0 + 5521 = 0 + 5522 = 0 + 5523 = 0 + 5524 = 0 + 5565 = 0 + 5567 = 0 + 5570 = 0 + 5571 = 0 + 5575 = 0 + 5572 = 0 + 5576 = 0 + 5581 = 0 + 5582 = 0 + 5587 = 0 + 5588 = 0 + 5589 = 0 + 5590 = 0 + 5601 = 0 + 5602 = 0 + 5603 = 0 + 5604 = 0 + 5645 = 0 + 5646 = 0 + 5647 = 0 + 5648 = 0 + 5675 = 0 + 5680 = 0 + 5681 = 0 + 5686 = 0 + 5687 = 0 + 5726 = 0 + 5727 = 0 + 5728 = 0 + 5729 = 0 + 5754 = 0 + 5755 = 0 + 5756 = 0 + 5758 = 0 + 5759 = 0 + 5760 = 0 + 5764 = 0 + 5761 = 0 + 5765 = 0 + 5770 = 0 + 5771 = 0 + 5774 = 0 + 5776 = 0 + 5775 = 0 + 5777 = 0 + 5778 = 0 + 5780 = 0 + 5779 = 0 + 5781 = 0 + 5786 = 0 + 5787 = 0 + 5790 = 0 + 5791 = 0 + 5792 = 0 + 5793 = 0 + 5818 = 0 + 5819 = 0 + 5820 = 0 + 5821 = 0 + 5834 = 0 + 5835 = 0 + 5836 = 0 + 5837 = 0 + 5863 = 0 + 5864 = 0 + 5869 = 0 + 5870 = 0 + 5873 = 0 + 5875 = 0 + 5874 = 0 + 5876 = 0 + 5879 = 0 + 5880 = 0 + 5899 = 0 + 5900 = 0 + 5901 = 0 + 5902 = 0 + 5915 = 0 + 5916 = 0 + 5917 = 0 + 5918 = 0 + 6024 = 0 + 6027 = 0 + 6028 = 0 + 6039 = 0 + 6040 = 0 + 6045 = 0 + 6046 = 0 + 6047 = 0 + 6048 = 0 + 6106 = 0 + 6116 = 0 + 6117 = 0 + 6122 = 0 + 6123 = 0 + 6142 = 0 + 6143 = 0 + 6144 = 0 + 6145 = 0 + 6186 = 0 + 6187 = 0 + 6189 = 0 + 6190 = 0 + 6197 = 0 + 6198 = 0 + 6201 = 0 + 6203 = 0 + 6202 = 0 + 6204 = 0 + 6207 = 0 + 6208 = 0 + 6209 = 0 + 6210 = 0 + 6223 = 0 + 6224 = 0 + 6225 = 0 + 6226 = 0 + 6269 = 0 + 6274 = 0 + 6275 = 0 + 6280 = 0 + 6281 = 0 + 6320 = 0 + 6321 = 0 + 6322 = 0 + 6323 = 0 + 6348 = 0 + 6350 = 0 + 6351 = 0 + 6355 = 0 + 6352 = 0 + 6356 = 0 + 6361 = 0 + 6362 = 0 + 6363 = 0 + 6364 = 0 + 6369 = 0 + 6370 = 0 + 6371 = 0 + 6372 = 0 + 6401 = 0 + 6402 = 0 + 6403 = 0 + 6404 = 0 + 6430 = 0 + 6431 = 0 + 6436 = 0 + 6437 = 0 + 6440 = 0 + 6442 = 0 + 6441 = 0 + 6443 = 0 + 6446 = 0 + 6447 = 0 + 6466 = 0 + 6467 = 0 + 6468 = 0 + 6469 = 0 + 6482 = 0 + 6483 = 0 + 6484 = 0 + 6485 = 0 + 6510 = 0 + 6511 = 0 + 6512 = 0 + 6513 = 0 + 6517 = 0 + 6514 = 0 + 6518 = 0 + 6521 = 0 + 6523 = 0 + 6522 = 0 + 6524 = 0 + 6525 = 0 + 6527 = 0 + 6526 = 0 + 6528 = 0 + 6531 = 0 + 6532 = 0 + 6533 = 0 + 6534 = 0 + 6547 = 0 + 6548 = 0 + 6549 = 0 + 6550 = 0 + 6563 = 0 + 6564 = 0 + 6565 = 0 + 6566 = 0 diff --git a/tests/parsed_mapped_functions_13.cc b/tests/parsed_mapped_functions_13.cc new file mode 100644 index 00000000..bbb1809a --- /dev/null +++ b/tests/parsed_mapped_functions_13.cc @@ -0,0 +1,28 @@ +// parsing an expression with wrong number of components + + +#include "tests.h" +#include "utilities.h" +#include "parameter_acceptor.h" +#include "parsed_mapped_functions.h" + + +int main () +{ + initlog(); + ParsedMappedFunctions<2,3> pmf("Mapped Functions", "u,u,p,j", + "0=u % 1=1 % 6=u;p", + "0=x;y;0 % 1=0;0;0 % 6=y*k;0;k","k=1"); + + ParameterAcceptor::initialize(SOURCE_DIR "/parameters/parsed_mapped_functions_13.prm", "used_parameters.prm"); + ParameterAcceptor::prm.log_parameters(deallog); + + Point<2> p(2,3); + + std::vector ids = pmf.get_mapped_ids(); + for (unsigned int i=0; i pmf("Mapped Functions", "u,u,p", + "0=uN % 1=1 % 6=u;p", + "0=0;0;0 % 1=0;0;0 % 6=y*k;0;k","k=1"); + + ParameterAcceptor::initialize(SOURCE_DIR "/parameters/parsed_mapped_functions_14.prm", "used_parameters.prm"); + ParameterAcceptor::prm.log_parameters(deallog); + + Point<2> p(2,3); + + std::vector ids = pmf.get_mapped_ids(); + for (unsigned int i=0; i