cogenrefine.hxx

来自「有限元学习研究用源代码(老外的),供科研人员参考」· HXX 代码 · 共 63 行

HXX
63
字号
#ifndef cogenrefine_hxx
#define cogenrefine_hxx

#ifndef cogenerator_hxx
#include "cogenerator.hxx"
#endif
#ifndef wzcoordinates_hxx
#include "wzcoordinates.hxx"
#endif

class CogenRefineItem{
protected:
  friend class CogenRefine;
  wzFloat	dist[wzPointDim];
  wzFloat	near[wzPointDim];
  wzFloat	x[wzPointDim];
  wzSegment	s;
  wzSegment	so;
  wzIndex	typ;
};


class CogenRefine
  :public CogenDecorator,
   public wzDiagonalMetricSimple
{
  wzmetric	refinement() const {return (CogenRefine*)this;}
  wzmetric	oldRefinement;
  wzIndex 	PointMode;
  wzSimpleRange	nList;
  wzSimpleRange	fList;
  wzArray<CogenRefineItem>	nItem;
  wzArray<CogenRefineItem>	fItem;
public:
  cogenerator	generator() const {return (CogenRefine*)this;}
  cogenRefine	cogenrefine() const;
  CogenRefine(cogenerator gen);
  wzIndex refinementInRegion(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r);
  wzIndex refinementNearPoint(wzFloat dx, wzFloat dy, wzFloat dz,
			      wzFloat nx, wzFloat ny, wzFloat nz,
			      wzFloat xx, wzFloat yy, wzFloat zz);
  wzIndex refinementNearFace(wzFloat dx, wzFloat dy, wzFloat dz, wzFace f);
  wzIndex refinementNearBoundary(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r);
  wzIndex refinementBetween(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r1, wzRegion r2);
  // isotropical variants:
  wzIndex refinementIsotropicalInRegion(wzFloat d, wzRegion r);
  wzIndex refinementIsotropicalNearPoint(wzFloat d, wzFloat n,
					 wzFloat xx, wzFloat yy, wzFloat zz);
  wzIndex refinementIsotropicalNearBoundary(wzFloat d, wzRegion r);
  wzIndex refinementIsotropicalBetween(wzFloat d, wzRegion r1, wzRegion r2);
  wzIndex refinementIsotropicalNearFace(wzFloat d, wzFace f);
  void setPointModeRectangular();
  void setPointModeSpherical();
protected:
  //virtual wzpoints	generatePoints(cogeometry g,wzmetric r) const;
  virtual void getMetric(wzMetricData& data, const wzPoint& p) const;
  virtual void getMetric(wzMetricData& data, const cogFlag1& f) const;
};

typedef wzProxy<CogenRefine> cogenRefine;

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?