コード例 #1
0
ファイル: test_hinges.py プロジェクト: Krande/adapy
def test_simple_hinged_beam(test_dir):
    bm = Beam("MyBeam", (0, 0, 0), (1, 0, 0), "IPE400")
    bm.hinge_prop = HingeProp(end1=Hinge([1, 2, 3, 4, 6], Csys("MyBeam_hinge")))
    p = Part("MyPart") / bm
    p.fem = p.to_fem_obj(0.1)
    convert_hinges_2_couplings(p.fem)
    assert len(p.fem.constraints.values()) == 1
コード例 #2
0
ファイル: recipes.py プロジェクト: Krande/adapy
def mesh_mixed_shell_and_beams(p: Part):
    p.connections.find()
    with GmshSession(silent=True, options=GmshOptions(Mesh_Algorithm=8)) as gs:
        gmap = dict()
        for obj in p.get_all_physical_objects():
            if type(obj) is Beam:
                li = gs.add_obj(obj,
                                geom_repr="line",
                                build_native_lines=False)
                gmap[obj] = li.entities
            elif type(obj) is Plate:
                pl = gs.add_obj(obj, geom_repr="shell")
                gmap[obj] = pl.entities

        beams = list(p.get_all_physical_objects(by_type=Beam))
        gs.open_gui()
        for pl in p.get_all_physical_objects(by_type=Plate):
            intersecting_beams = []
            for pl_dim, pl_ent in gmap[pl]:
                for bm in find_beams_connected_to_plate(pl, beams):
                    for li_dim, li_ent in gmap[bm]:
                        intersecting_beams.append(li_ent)

            gs.model.mesh.embed(1, intersecting_beams, 2, pl_ent)
            gs.model.geo.synchronize()

        gs.mesh(0.1)
        p.fem = gs.get_fem()
コード例 #3
0
def test_simplestru_fem_cache(bm_ipe300):

    model_name = "ParamAssembly"

    start = time.time()
    pfem = Part("ParamModel") / bm_ipe300
    a = Assembly(model_name, clear_cache=True,
                 enable_experimental_cache=True) / pfem

    pfem.fem = pfem.to_fem_obj(0.1)
    time1 = time.time() - start

    a.update_cache()
    start = time.time()
    b = Assembly(model_name, enable_experimental_cache=True)
    time2 = time.time() - start
    cache_validation(a, b)

    print(
        f"Model generation time reduced from {time1:.2f}s to {time2:.2f}s -> {time1 / time2:.2f} x Improvement"
    )
コード例 #4
0
ファイル: physical_objects.py プロジェクト: Krande/adapy
    def to_fem(
        self,
        mesh_size,
        geom_repr,
        name: str,
        fem_format: str,
        options: GmshOptions = None,
        silent=True,
        use_quads=False,
        use_hex=False,
        return_assembly=False,
        **kwargs,
    ):
        from ada import Assembly, Part

        p = Part(name)
        p.fem = self.to_fem_obj(mesh_size, geom_repr, options, silent,
                                use_quads, use_hex, name)
        a = Assembly() / (p / self)
        if return_assembly:
            return a
        a.to_fem(name, fem_format, **kwargs)