Geant4 几何体的构建

​​​​​        初级的测井模型可以分级为世界-World,地层空间-Formation_physical,在地层空间中打的井筒-Borehole-physical(井筒内部可能没有任何支撑结构(裸眼井筒),也可能有套管和水泥环(套管井筒)),可以加套管也可以不加套管,主要用于稳定井壁、隔离不同地层的流体、防止井壁坍塌以及保护生产管柱等。然后就是仪器tool,仪器又分层为仪器壁tool_solid,仪器空间tool_space,空间中有源(粒子枪)和探测器detector。每个模型的建立大概分为三个部分:

(1)三维几何结构

        具体的三维几何结构可以调用相应的类,G4提供了许多结构,例如#include "G4Tubs.hh" #include "G4Box.hh"管状和长方体状。例如创建世界的语句:

 G4Box* world_solid = new G4Box("world_solid", 2000 * mm, 2000 * mm, 2000 * mm);

        需要注意的是,在创建箱体尺寸的时候,需要带上单位,同时传入的参数为实际参数的1/2,涉及到圆时,参数传入半径即可。

(2)物体的填充材料

        首先是材料,在设置填充物前,需要先查表,调用g4提供的或者自己定义的材料。如果使用G4提供的,那么可以如下表示:

G4NistManager* nist_manager = G4NistManager::Instance();

    //通过查G4开发手册,知道空气的名称为G4_AIR

G4Material* air = nist_manager->FindOrBuildMaterial("G4_AIR");

材料确定之后,则通过 G4LogicalVolume类创建类对象,进行连接,例如:

G4LogicalVolume* world_logical = new G4LogicalVolume(world_solid, air, "World",

0, 0, 0 );

        第一个参数是物体名称,第二个参数是材料名称,第三个参数则为本次创建指针对象名称(需要双引号引用)。后面三个000不填写也不影响。

(3)物体的位置

位置的设置则通过,G4PhysicalVolume创建类指针对象进行赋值,例如:

G4VPhysicalVolume* Borehole_physical = new G4PVPlacement(

            0

            , G4ThreeVector(0, 0, 0)

            , Borehole_logical

            , "Borehole_physical"

            , formation_logical

            , false

            , 0

            , true

        );

        一共八个参数,第一个参数为旋转矩阵,第二个参数为相对于母物体的偏移位置,第三个为本次物体的材料对象名称,第四个是本次创建的指针类对象名称(引号),第五个是母级物体的材料对象名称,第六个参数为是否创建副本,第七个是副本编号,第八个是检查重叠。

通过这三个步骤则可以完整的创建一个几何体。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值