FVGenericSelection class specialized for selections with volume spherical primitive shapes. More...

#include <FVMeshSelection.hpp>

Inheritance diagram for mimmo::FVSelectionBySphere:
Collaboration diagram for mimmo::FVSelectionBySphere:

Public Member Functions

 FVSelectionBySphere (const bitpit::Config::Section &rootXML)
 
 FVSelectionBySphere (const FVSelectionBySphere &other)
 
 FVSelectionBySphere (int topo, darray3E origin, darray3E span, double infLimTheta, double infLimPhi)
 
 FVSelectionBySphere (int topo=1)
 
virtual ~FVSelectionBySphere ()
 
virtual void absorbSectionXML (const bitpit::Config::Section &slotXML, std::string name="")
 
virtual void flushSectionXML (bitpit::Config::Section &slotXML, std::string name="")
 
FVSelectionBySphereoperator= (FVSelectionBySphere other)
 
void setInfLimits (darray3E val)
 
void setOrigin (darray3E origin)
 
void setRefSystem (dmatrix33E axes)
 
void setSpan (darray3E span)
 
- Public Member Functions inherited from mimmo::FVGenericSelection
 FVGenericSelection (const FVGenericSelection &other)
 
 FVGenericSelection (int topo=1)
 
virtual ~FVGenericSelection ()
 
void execute ()
 
mimmo::MimmoSharedPointer< MimmoObjectgetBoundaryPatch ()
 
const mimmo::MimmoSharedPointer< MimmoObjectgetBoundaryPatch () const
 
mimmo::MimmoSharedPointer< MimmoObjectgetInternalBoundaryPatch ()
 
const mimmo::MimmoSharedPointer< MimmoObjectgetInternalBoundaryPatch () const
 
mimmo::MimmoSharedPointer< MimmoObjectgetVolumePatch ()
 
const mimmo::MimmoSharedPointer< MimmoObjectgetVolumePatch () const
 
bool isDual ()
 
FVGenericSelectionoperator= (FVGenericSelection other)
 
void setBoundaryGeometry (mimmo::MimmoSharedPointer< MimmoObject >)
 
void setDual (bool flag=false)
 
void setGeometry (mimmo::MimmoSharedPointer< MimmoObject >)
 
void setSelection (MimmoSharedPointer< GenericSelection > selectBlock)
 
- Public Member Functions inherited from mimmo::BaseManipulation
 BaseManipulation ()
 
 BaseManipulation (const BaseManipulation &other)
 
virtual ~BaseManipulation ()
 
void activate ()
 
bool arePortsBuilt ()
 
void clear ()
 
void disable ()
 
void exec ()
 
BaseManipulationgetChild (int i=0)
 
ConnectionType getConnectionType ()
 
MimmoSharedPointer< MimmoObjectgetGeometry ()
 
MimmoSharedPointer< MimmoObject > & getGeometryReference ()
 
int getId ()
 
bitpit::Logger & getLog ()
 
std::string getName ()
 
int getNChild ()
 
int getNParent ()
 
int getNPortsIn ()
 
int getNPortsOut ()
 
BaseManipulationgetParent (int i=0)
 
std::unordered_map< PortID, PortIn * > getPortsIn ()
 
std::unordered_map< PortID, PortOut * > getPortsOut ()
 
uint getPriority ()
 
virtual std::vector< BaseManipulation * > getSubBlocksEmbedded ()
 
bool isActive ()
 
bool isApply ()
 
bool isChild (BaseManipulation *, int &)
 
bool isParent (BaseManipulation *, int &)
 
bool isPlotInExecution ()
 
BaseManipulationoperator= (const BaseManipulation &other)
 
void removePins ()
 
void removePinsIn ()
 
void removePinsOut ()
 
void setApply (bool flag=true)
 
void setGeometry (MimmoSharedPointer< MimmoObject > geometry)
 
void setId (int)
 
void setLog (bitpit::Logger &log)
 
void setName (std::string name)
 
void setOutputPlot (std::string path)
 
void setPlotInExecution (bool)
 
void setPriority (uint priority)
 
void unsetGeometry ()
 

Protected Member Functions

void buildPorts ()
 
void swap (FVSelectionBySphere &) noexcept
 
- Protected Member Functions inherited from mimmo::FVGenericSelection
bool checkCoherenceBulkBoundary ()
 
void cleanUpBoundaryPatch ()
 
MimmoSharedPointer< MimmoObjectcreateInternalBoundaryPatch ()
 
virtual void plotOptionalResults ()
 
void swap (FVGenericSelection &x) noexcept
 
- Protected Member Functions inherited from mimmo::BaseManipulation
void _apply (MimmoPiercedVector< darray3E > &displacements)
 
void addChild (BaseManipulation *child)
 
void addParent (BaseManipulation *parent)
 
void addPinIn (BaseManipulation *objIn, PortID portR)
 
void addPinOut (BaseManipulation *objOut, PortID portS, PortID portR)
 
virtual void apply ()
 
void cleanBufferIn (PortID port)
 
template<typename T , typename O >
bool createPortIn (O *obj, void(O::*setVar_)(T), PortID portR, bool mandatory=false, int family=0)
 
template<typename T , typename O >
bool createPortIn (T *var_, PortID portR, bool mandatory=false, int family=0)
 
template<typename T , typename O >
bool createPortOut (O *obj, T(O::*getVar_)(), PortID portS)
 
template<typename T , typename O >
bool createPortOut (T *var_, PortID portS)
 
void deletePorts ()
 
PortID findPinIn (PortIn &pin)
 
PortID findPinOut (PortOut &pin)
 
void initializeLogger (bool logexists)
 
void readBufferIn (PortID port)
 
void removePinIn (BaseManipulation *objIn, PortID portR)
 
void removePinIn (PortID portR, int j)
 
void removePinOut (BaseManipulation *objOut, PortID portS)
 
void removePinOut (PortID portS, int j)
 
void setBufferIn (PortID port, mimmo::IBinaryStream &input)
 
void swap (BaseManipulation &x) noexcept
 
void unsetChild (BaseManipulation *child)
 
void unsetParent (BaseManipulation *parent)
 
void write (MimmoSharedPointer< MimmoObject > geometry)
 
template<typename mpv_t >
void write (MimmoSharedPointer< MimmoObject > geometry, MimmoPiercedVector< mpv_t > &data)
 
template<typename mpv_t , typename... Args>
void write (MimmoSharedPointer< MimmoObject > geometry, MimmoPiercedVector< mpv_t > &data, Args ... args)
 
template<typename mpv_t >
void write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t > * > &data)
 
template<typename mpv_t , typename... Args>
void write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t > * > &data, Args ... args)
 
template<typename mpv_t >
void write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t >> &data)
 
template<typename mpv_t , typename... Args>
void write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t >> &data, Args ... args)
 

Additional Inherited Members

- Public Types inherited from mimmo::BaseManipulation
typedef std::unordered_map< BaseManipulation *, int > bmumap
 
typedef pin::ConnectionType ConnectionType
 
typedef std::string PortID
 
- Protected Attributes inherited from mimmo::FVGenericSelection
MimmoSharedPointer< MimmoObjectm_bndgeometry
 
MimmoSharedPointer< MimmoObjectm_bndpatch
 
bool m_dual
 
MimmoSharedPointer< MimmoObjectm_intbndpatch
 
MimmoSharedPointer< GenericSelectionm_selectEngine
 
int m_topo
 
MimmoSharedPointer< MimmoObjectm_volpatch
 
- Protected Attributes inherited from mimmo::BaseManipulation
bool m_active
 
bool m_apply
 
bool m_arePortsBuilt
 
bmumap m_child
 
int m_counter
 
bool m_execPlot
 
MimmoSharedPointer< MimmoObjectm_geometry
 
bitpit::Logger * m_log
 
std::string m_name
 
std::string m_outputPlot
 
bmumap m_parent
 
std::unordered_map< PortID, PortIn * > m_portIn
 
std::unordered_map< PortID, PortOut * > m_portOut
 
ConnectionType m_portsType
 
uint m_priority
 
- Static Protected Attributes inherited from mimmo::BaseManipulation
static int sm_baseManipulationCounter
 

Detailed Description

FVGenericSelection class specialized for selections with volume spherical primitive shapes.

Use SelectionBySphere internally to extract bulk+boundary sub-patches.

Ports available in FVSelectionBySphere Class :


Port Input
PortType variable/function DataType
M_POINT setOrigin (MC_ARRAY3, MD_FLOAT)
M_AXES setRefSystem (MC_ARR3ARR3, MD_FLOAT)
M_SPAN setSpan (MC_ARRAY3, MD_FLOAT)
M_INFLIMITS setInfLimits (MC_ARRAY3, MD_FLOAT)
Port Output
PortType variable/function DataType

Inherited from FVGenericSelection

Port Input
PortType variable/function DataType
M_VALUEB setDual (MC_SCALAR, MD_BOOL)
M_GEOM setGeometry (MC_SCALAR, MD_MIMMO_)
M_GEOM2 setBoundary (MC_SCALAR, MD_MIMMO_)
Port Output
PortType variable/function DataType
M_GEOM getVolumePatch (MC_SCALAR, MD_MIMMO_)
M_GEOM2 getBoundaryPatch (MC_SCALAR, MD_MIMMO_)
M_GEOM3 getInternalBoundaryPatch (MC_SCALAR, MD_MIMMO_)

The xml available parameters, sections and subsections are the following :

Inherited from BaseManipulation:

  • ClassName: name of the class as mimmo.FVSelectionBySphere;
  • Priority: uint marking priority in multi-chain execution;
  • PlotInExecution: boolean 0/1 print optional results of the class;
  • OutputPlot: target directory for optional results writing.

Proper of the class:

  • Topology : 1 for volume mesh+surface boundary, 2 for surface mesh + 3Dcurve boundary. No other value allowed.
  • Dual: boolean to get straight what given by selection method or its exact dual;
  • Origin: array of 3 doubles identifying origin of sphere (space separated);
  • Span: span of the sphere (radius angular_azimuthal_width angular_polar_width);
  • RefSystem: reference system of the box:

    <RefSystem>
       <axis0> 1.0 0.0 0.0 </axis0>
       <axis1> 0.0 1.0 0.0 </axis1>
       <axis2> 0.0 0.0 1.0 </axis2>
    </RefSystem>


  • InfLimits: set starting point for each spherical coordinate. Useful to assign different starting angular coordinate to azimuthal width/ polar width.

Geometry has to be mandatorily passed through port.

Definition at line 386 of file FVMeshSelection.hpp.

Constructor & Destructor Documentation

◆ FVSelectionBySphere() [1/4]

mimmo::FVSelectionBySphere::FVSelectionBySphere ( int  topo = 1)

Basic Constructor. Parameter topo get topology of the target MimmoFvMesh where performing extraction:

  • 1 for volume bulk and surface boundary
  • 2 for surface bulk and 3DCurve boundary

No other values are allowed

Parameters
[in]topotopology of the target MimmoFvMesh.

Definition at line 38 of file FVSelectionBySphere.cpp.

◆ FVSelectionBySphere() [2/4]

mimmo::FVSelectionBySphere::FVSelectionBySphere ( const bitpit::Config::Section &  rootXML)

Custom constructor reading xml data

Parameters
[in]rootXMLreference to your xml tree section

Definition at line 47 of file FVSelectionBySphere.cpp.

◆ FVSelectionBySphere() [3/4]

mimmo::FVSelectionBySphere::FVSelectionBySphere ( int  topo,
darray3E  origin,
darray3E  span,
double  infLimTheta,
double  infLimPhi 
)

Custom Constructor. Pay attention span of angular and polar coords are at most 2*pi and pi respectively. Inf limits of polar coordinate must be > 0 and < pi.

Parameters
[in]topotopology of the target MimmoFvMesh.See Basic Constructor doxy.
[in]originOrigin of the sphere->baricenter
[in]spanSpan of the cylinder, main radius/ span of angular coord in radians/span of the polar coord in radians
[in]infLimThetaStarting origin of the angular coordinate. default is 0 radians.
[in]infLimPhiStarting origin of the polar coordinate. default is 0 radians.

Definition at line 80 of file FVSelectionBySphere.cpp.

◆ ~FVSelectionBySphere()

mimmo::FVSelectionBySphere::~FVSelectionBySphere ( )
virtual

Destructor

Definition at line 95 of file FVSelectionBySphere.cpp.

◆ FVSelectionBySphere() [4/4]

mimmo::FVSelectionBySphere::FVSelectionBySphere ( const FVSelectionBySphere other)

Copy Constructor

Definition at line 100 of file FVSelectionBySphere.cpp.

Member Function Documentation

◆ absorbSectionXML()

void mimmo::FVSelectionBySphere::absorbSectionXML ( const bitpit::Config::Section &  slotXML,
std::string  name = "" 
)
virtual

It sets infos reading from a XML bitpit::Config::section.

Parameters
[in]slotXMLbitpit::Config::Section of XML file
[in]namename associated to the slot

Reimplemented from mimmo::BaseManipulation.

Definition at line 180 of file FVSelectionBySphere.cpp.

◆ buildPorts()

void mimmo::FVSelectionBySphere::buildPorts ( )
protectedvirtual

It builds the input/output ports of the object

Reimplemented from mimmo::FVGenericSelection.

Definition at line 124 of file FVSelectionBySphere.cpp.

◆ flushSectionXML()

void mimmo::FVSelectionBySphere::flushSectionXML ( bitpit::Config::Section &  slotXML,
std::string  name = "" 
)
virtual

It sets infos from class members in a XML bitpit::Config::section.

Parameters
[in]slotXMLbitpit::Config::Section of XML file
[in]namename associated to the slot

Reimplemented from mimmo::BaseManipulation.

Definition at line 295 of file FVSelectionBySphere.cpp.

◆ operator=()

FVSelectionBySphere & mimmo::FVSelectionBySphere::operator= ( FVSelectionBySphere  other)

Copy operator

Definition at line 105 of file FVSelectionBySphere.cpp.

◆ setInfLimits()

void mimmo::FVSelectionBySphere::setInfLimits ( darray3E  val)

Set inferior limits of sphere, useful to alter starting azimuthal (0,2*pi) and polar coordinates (0,pi) of sphere (position 1 and 2 in the array, for example {{0, pi/3, pi/2}}).

Parameters
[in]vallower value origin for all three coordinates

Definition at line 169 of file FVSelectionBySphere.cpp.

◆ setOrigin()

void mimmo::FVSelectionBySphere::setOrigin ( darray3E  origin)

Set origin of the sphere. .

Parameters
[in]originnew origin point

Definition at line 142 of file FVSelectionBySphere.cpp.

◆ setRefSystem()

void mimmo::FVSelectionBySphere::setRefSystem ( dmatrix33E  axes)

Set new axis orientation of the local reference system

Parameters
[in]axes

Definition at line 160 of file FVSelectionBySphere.cpp.

◆ setSpan()

void mimmo::FVSelectionBySphere::setSpan ( darray3E  span)

Set span of the cylinder according to its local reference system of axes Azimuthal and polar span [1 and 2 positions] are expressed in radians

Parameters
[in]span

Definition at line 151 of file FVSelectionBySphere.cpp.

◆ swap()

void mimmo::FVSelectionBySphere::swap ( FVSelectionBySphere x)
protectednoexcept

Swap function. Assign data of this class to another of the same type and vice-versa. Resulting patch of selection is not swapped, ever.

Parameters
[in]xFVSelectionBySphere object

Definition at line 115 of file FVSelectionBySphere.cpp.


The documentation for this class was generated from the following files: