Skip to content
Snippets Groups Projects
Commit bb3d46e4 authored by Tristan Carrier Baudouin's avatar Tristan Carrier Baudouin
Browse files

implementation of Soji Yamakawa's algorithm

parent 104e5aac
No related branches found
No related tags found
No related merge requests found
...@@ -96,10 +96,9 @@ set(GMSH_API ...@@ -96,10 +96,9 @@ set(GMSH_API
Geo/SVector3.h Geo/STensor3.h Geo/SBoundingBox3d.h Geo/Pair.h Geo/Range.h Geo/SVector3.h Geo/STensor3.h Geo/SBoundingBox3d.h Geo/Pair.h Geo/Range.h
Geo/SOrientedBoundingBox.h Geo/CellComplex.h Geo/ChainComplex.h Geo/Cell.h Geo/SOrientedBoundingBox.h Geo/CellComplex.h Geo/ChainComplex.h Geo/Cell.h
Geo/Homology.h Geo/Chain.h Geo/partitionEdge.h Geo/CGNSOptions.h Geo/gmshLevelset.h Geo/Homology.h Geo/Chain.h Geo/partitionEdge.h Geo/CGNSOptions.h Geo/gmshLevelset.h
Mesh/meshGEdge.h Mesh/meshGFace.h Mesh/meshGFaceOptimize.h Mesh/meshGEdge.h Mesh/meshGFace.h Mesh/meshGFaceOptimize.h Mesh/meshGFaceElliptic.h Mesh/meshPartition.h
Mesh/meshGFaceElliptic.h Mesh/meshPartition.h Mesh/meshGFaceDelaunayInsertion.h Mesh/simple3D.h Mesh/meshPartitionOptions.h Mesh/directions3D.h Mesh/yamakawa.h
Mesh/meshGFaceDelaunayInsertion.h Mesh/simple3D.h Mesh/meshPartitionOptions.h Mesh/Voronoi3D.h Mesh/Levy3D.h Mesh/periodical.h
Mesh/directions3D.h Mesh/Voronoi3D.h Mesh/Levy3D.h Mesh/periodical.h
Numeric/mathEvaluator.h Numeric/mathEvaluator.h
Solver/dofManager.h Solver/femTerm.h Solver/laplaceTerm.h Solver/elasticityTerm.h Solver/dofManager.h Solver/femTerm.h Solver/laplaceTerm.h Solver/elasticityTerm.h
Solver/crossConfTerm.h Solver/orthogonalTerm.h Solver/crossConfTerm.h Solver/orthogonalTerm.h
......
...@@ -35,7 +35,8 @@ set(SRC ...@@ -35,7 +35,8 @@ set(SRC
Levy3D.cpp Levy3D.cpp
periodical.cpp periodical.cpp
directions3D.cpp directions3D.cpp
Field.cpp yamakawa.cpp
Field.cpp
CenterlineField.cpp CenterlineField.cpp
) )
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "GRegion.h" #include "GRegion.h"
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "directions3D.h" #include "directions3D.h"
#include "GModel.h" #include "GModel.h"
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "GFace.h" #include "GFace.h"
#include "MElementOctree.h" #include "MElementOctree.h"
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#ifndef _MESH_GFACE_LLOYD_H_ #ifndef _MESH_GFACE_LLOYD_H_
#define _MESH_GFACE_LLOYD_H_ #define _MESH_GFACE_LLOYD_H_
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "GRegion.h" #include "GRegion.h"
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "simple3D.h" #include "simple3D.h"
#include "GModel.h" #include "GModel.h"
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>. // bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "SVector3.h" #include "SVector3.h"
#include <list> #include <list>
......
This diff is collapsed.
// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
// Tristan Carrier
#include "GRegion.h"
#include <set>
class Hex{
private:
double quality;
MVertex *a,*b,*c,*d,*e,*f,*g,*h;
public:
Hex();
Hex(MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*);
~Hex();
double get_quality() const;
void set_quality(double);
MVertex* get_a();
MVertex* get_b();
MVertex* get_c();
MVertex* get_d();
MVertex* get_e();
MVertex* get_f();
MVertex* get_g();
MVertex* get_h();
void set_vertices(MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*,MVertex*);
bool operator<(const Hex&) const;
};
class Recombinator{
private:
std::vector<Hex> potential;
std::map<MElement*,bool> markings;
std::map<MVertex*,std::set<MVertex*> > vertex_to_vertices;
std::map<MVertex*,std::set<MElement*> > vertex_to_elements;
public:
Recombinator();
~Recombinator();
void execute();
void execute(GRegion*);
void init_markings(GRegion*);
void patern1(GRegion*);
void patern2(GRegion*);
void patern3(GRegion*);
void merge(GRegion*);
void rearrange(GRegion*);
void statistics(GRegion*);
bool sliver(MElement*,Hex);
double diagonal(MElement*,int&,int&);
double distance(MVertex*,MVertex*);
double distance(MVertex*,MVertex*,MVertex*);
double scalar(MVertex*,MVertex*,MVertex*,MVertex*);
void two_others(int,int,int&,int&);
bool valid(Hex,const std::set<MElement*>&);
bool valid(Hex);
double eta(MVertex*,MVertex*,MVertex*,MVertex*);
bool linked(MVertex*,MVertex*);
void find(MVertex*,MVertex*,const std::vector<MVertex*>&,std::set<MVertex*>&);
void find(MVertex*,MVertex*,MVertex*,const std::vector<MVertex*>&,std::set<MVertex*>&);
void find(MVertex*,MVertex*,std::set<MElement*>&);
void find(MVertex*,Hex,std::set<MElement*>&);
MVertex* find(MVertex*,MVertex*,MVertex*,MVertex*,const std::set<MElement*>&);
void intersection(const std::set<MVertex*>&,const std::set<MVertex*>&,const std::vector<MVertex*>&,std::set<MVertex*>&);
void intersection(const std::set<MVertex*>&,const std::set<MVertex*>&,const std::set<MVertex*>&,const std::vector<MVertex*>&,std::set<MVertex*>&);
void intersection(const std::set<MElement*>&,const std::set<MElement*>&,std::set<MElement*>&);
bool inclusion(MVertex*,Hex);
bool inclusion(MVertex*,MVertex*,MVertex*,MVertex*,MVertex*);
bool inclusion(MVertex*,MVertex*,MVertex*,const std::set<MElement*>&);
void build_vertex_to_vertices(GRegion*);
void build_vertex_to_elements(GRegion*);
void print_vertex_to_vertices(GRegion*);
void print_vertex_to_elements(GRegion*);
void print_segment(SPoint3,SPoint3,std::ofstream&);
double scaled_jacobian(MVertex*,MVertex*,MVertex*,MVertex*);
double max_scaled_jacobian(MElement*,int&);
double min_scaled_jacobian(Hex);
};
\ No newline at end of file
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "Levy3D.h" #include "Levy3D.h"
#include "periodical.h" #include "periodical.h"
#include "directions3D.h" #include "directions3D.h"
#include "yamakawa.h"
#endif #endif
%} %}
...@@ -54,4 +55,5 @@ namespace std { ...@@ -54,4 +55,5 @@ namespace std {
%include "Levy3D.h" %include "Levy3D.h"
%include "periodical.h" %include "periodical.h"
%include "directions3D.h" %include "directions3D.h"
%include "yamakawa.h"
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment