Giter Club home page Giter Club logo

bim2modelica's Introduction

Feel++: Finite Element Embedded Library in C++

feelpp DOI

feelpp?color=009688&logo=Riseup&style=flat square feelpp?color=009688&logo=Moleculer&logoColor=white&style=flat square feelpp?color=009688&logo=Bilibili&logoColor=white&style=flat square feelpp?logo=Draugiem feelpp?color=009688&style=flat square&logo=Hack The Box&logoColor=white

Feel++ is a C++ library for continuous or discontinuous Galerkin methods including finite element method(FEM), spectral element methods(SEM), reduced basis methods, discontinuous galerkin methods (DG and HDG) in 1D 2D and 3D and in parallel. Checkout What is Feel++?, Feel++ Features and some Examples.

Releases

The latest release of Feel++ is here feelpp

Feel++ has a DOI provided by Zenodo. Please use this to cite Feel++ if you use it in a publication DOI

Feel++ is split into three components:

feelpp

library and tools

feelpp-toolboxes

mono and multiphysics toolboxes (cfd, csm, heat transfer, fsi, heat and fluid, hdg(poisson and elasticity), thermo-electric and maxwell)

feelpp-mor

model order reduction applications and tools

These components are built and delivered in two distribution channels: stable and latest. The channels are currently available via Docker containers, Debian and Ubuntu packages.

stable

Once a year, sometimes more, we make a release of Feel++ and it becomes the basis of the stable channel. The channel is updated infrequently, only for a new release or a major bug.

latest

Feel++ has a very active development and changes are made everyday with the research done by Cemosis and its collaborators. Each commit in the main development branch triggers a new full build with more than 800 tests from unit test to full pde solves.

Instructions are available here to install Feel++ : https://docs.feelpp.org/user/latest/install/index.html.

Feel++ Documentation

Slack Discussion Forum

We encourage you to ask questions and discuss any aspects of the project on Slack. New contributors are always welcome!

Continuous Integration

Feel++ maintains various branches. At the core, the development model is greatly inspired by existing models out there. The central repo holds two main branches with an infinite lifetime: master and develop

master

Main branch where the source code of HEAD always reflects a production-ready state.

develop

Main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. Some would call this the “integration branch”. This is where any automatic nightly builds are built from.

feature/*

Feature branches (or sometimes called topic branches) are used to develop new features for the upcoming or a distant future release. When starting development of a feature, the target release in which this feature will be incorporated may well be unknown at that point. The essence of a feature branch is that it exists as long as the feature is in development, but will eventually be merged back into develop (to definitely add the new feature to the upcoming release) or discarded (in case of a disappointing experiment).

What is Feel++?

Feel++ is a C++ library for continuous or discontinuous Galerkin methods including finite element method(FEM), spectral element methods(SEM), reduced basis methods, discontinuous Galerkin methods (DG and HDG) in 1D 2D and 3D and in parallel. The objectives of this framework are quite ambitious; ambitions which could be expressed in various ways such as :

  • the creation of a versatile mathematical kernel solving easily problems using different techniques thus allowing testing and comparing methods, e.g. cG versus dG,

  • the creation of a small and manageable library which shall nevertheless encompass a wide range of numerical methods and techniques,

  • build mathematical software that follows closely the mathematical abstractions associated with partial differential equations (PDE),

  • the creation of a library entirely in C++ allowing to create complex and typically multi-physics applications such as fluid-structure interaction or mass transport in haemodynamic.

Features

  • 1D 2D and 3D (including high order) geometries and also lower topological dimension 1D(curve) in 2D and 3D or 2D(surface) in 3D

  • continuous and discontinuous (dG and hdG) arbitrary order Galerkin Methods in 1D, 2D and 3D including finite and spectral element methods

  • domain specific embedded language in C++ for variational formulations

  • interfaced with PETSc for linear and non-linear solvers

  • seamless parallel computations using PETSc

  • interfaced with SLEPc for large-scale sparse standard and generalized eigenvalue solvers

  • supports Gmsh for mesh generation

  • supports Gmsh for post-processing (including on high order geometries)

  • supports Paraview and CEI/Ensight for post-processing and the following file formats: ensight gold, gmsh, xdmf.

Contributing

In the spirit of free software, everyone is encouraged to help improve this project. If you discover errors or omissions in the source code, documentation, or website content, please don’t hesitate to submit an issue or open a pull request with a fix. New contributors are always welcome!

Here are some ways you can contribute:

  • by using develop versions

  • by reporting bugs

  • by suggesting new features

  • by writing or editing documentation

  • by writing specifications

  • by writing code — No patch is too small.

    • fix typos

    • add comments

    • write examples!

    • write tests!

  • by refactoring code

  • by fixing issues

  • by reviewing Pull Requests

The Contributing guide provides information on how to create, style, and submit issues, feature requests, code, and documentation to the Feel++ Project.

Getting Help

The Feel++ project is developed to help you easily do (i) modelisation simulation and optimisation and (ii) high performance computing. But we can’t do it without your feedback! We encourage you to ask questions and discuss any aspects of the project on the discussion list, on Twitter or in the chat room.

Twitter

#feelpp hashtag or @feelpp mention

Chat (Slack)

Slack

Further information and documentation about Feel++ can be found on the project’s website.

Home | News | Docs

The Feel++ organization on GitHub hosts the project’s source code, issue tracker, and sub-projects.

Source repository (git)

https://github.com/feelpp/feelpp

Issue tracker

https://github.com/feelpp/feelpp/issues

Feel++ organization on GitHub

https://github.com/feelpp

Copyright © 2011-2023 Feel++ Consortium. Free use of this software is granted under the terms of the GPL License.

See the LICENSE file for details.

Authors

Feel++ is led by Christophe Prud’homme and has received contributions from many other individuals.

Examples

Laplacian in 2D using P3 Lagrange basis functions

Here is a full example to solve

-\Delta u = f \mbox{ in } \Omega,\quad u=g \mbox{ on } \partial \Omega

#include <feel/feel.hpp>

int main(int argc, char**argv )
{
    using namespace Feel;
    Environment env( _argc=argc, _argv=argv,
                     _desc=feel_options(),
                     _about=about(_name="qs_laplacian",
                                  _author="Feel++ Consortium",
                                  _email="[email protected]"));

    auto mesh = unitSquare();
    auto Vh = Pch<1>( mesh );
    auto u = Vh->element();
    auto v = Vh->element();

    auto l = form1( _test=Vh );
    l = integrate(_range=elements(mesh),
                  _expr=id(v));

    auto a = form2( _trial=Vh, _test=Vh );
    a = integrate(_range=elements(mesh),
                  _expr=gradt(u)*trans(grad(v)) );
    a+=on(_range=boundaryfaces(mesh), _rhs=l, _element=u,
          _expr=constant(0.) );
    a.solve(_rhs=l,_solution=u);

    auto e = exporter( _mesh=mesh, _name="qs_laplacian" );
    e->add( "u", u );
    e->save();
    return 0;
}

Bratu equation in 2D

Here is a full non-linear example - the Bratu equation - to solve

\[-\Delta u + e^u = 0 \mbox{ in } \Omega,\quad u=0 \mbox{ on } \partial \Omega$$.\]
#include <feel/feel.hpp>

inline
Feel::po::options_description
makeOptions()
{
    Feel::po::options_description bratuoptions( "Bratu problem options" );
    bratuoptions.add_options()
    ( "lambda", Feel::po::value<double>()->default_value( 1 ),
                "exp() coefficient value for the Bratu problem" )
    ( "penalbc", Feel::po::value<double>()->default_value( 30 ),
                 "penalisation parameter for the weak boundary conditions" )
    ( "hsize", Feel::po::value<double>()->default_value( 0.1 ),
               "first h value to start convergence" )
    ( "export-matlab", "export matrix and vectors in matlab" )
    ;
    return bratuoptions.add( Feel::feel_options() );
}

/**
 * Bratu Problem
 *
 * solve \f$ -\Delta u + \lambda \exp(u) = 0, \quad u_\Gamma = 0\f$ on \f$\Omega\f$
 */
int
main( int argc, char** argv )
{

    using namespace Feel;
    Environment env( _argc=argc, _argv=argv,
                     _desc=makeOptions(),
                     _about=about(_name="bratu",
                                  _author="Christophe Prud'homme",
                                  _email="[email protected]"));
    auto mesh = unitSquare();
    auto Vh = Pch<3>( mesh );
    auto u = Vh->element();
    auto v = Vh->element();
    double penalbc = option(_name="penalbc").as<double>();
    double lambda = option(_name="lambda").as<double>();

    auto Jacobian = [=](const vector_ptrtype& X, sparse_matrix_ptrtype& J)
        {
            auto a = form2( _test=Vh, _trial=Vh, _matrix=J );
            a = integrate( elements( mesh ), gradt( u )*trans( grad( v ) ) );
            a += integrate( elements( mesh ), lambda*( exp( idv( u ) ) )*idt( u )*id( v ) );
            a += integrate( boundaryfaces( mesh ),
               ( - trans( id( v ) )*( gradt( u )*N() ) - trans( idt( u ) )*( grad( v )*N()  + penalbc*trans( idt( u ) )*id( v )/hFace() ) );
        };
    auto Residual = [=](const vector_ptrtype& X, vector_ptrtype& R)
        {
            auto u = Vh->element();
            u = *X;
            auto r = form1( _test=Vh, _vector=R );
            r = integrate( elements( mesh ), gradv( u )*trans( grad( v ) ) );
            r +=  integrate( elements( mesh ),  lambda*exp( idv( u ) )*id( v ) );
            r +=  integrate( boundaryfaces( mesh ),
               ( - trans( id( v ) )*( gradv( u )*N() ) - trans( idv( u ) )*( grad( v )*N() ) + penalbc*trans( idv( u ) )*id( v )/hFace() ) );
        };
    u.zero();
    backend()->nlSolver()->residual = Residual;
    backend()->nlSolver()->jacobian = Jacobian;
    backend()->nlSolve( _solution=u );

    auto e = exporter( _mesh=mesh );
    e->add( "u", u );
    e->save();
}

bim2modelica's People

Contributors

faballemand avatar nytschgeusen avatar prudhomm avatar romainhild avatar thorade avatar zohra-d avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

bim2modelica's Issues

create docker env image

to compile bim2modelica we need a docker image with :

  • python3 packages eg pytest
  • ifcopenshell
  • occ
  • python-occ

create an action pipeline to build a public docker image ghcr.io/feelpp/bim2modelica-env

Some tests are failing

pytest currently fails with this message

01:10:30 prudhomm@feelpp1 BIM2Modelica ±|pytest_for_ibat|→ pytest-3 
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.10.4, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /scratch/prudhomm/BIM2Modelica, configfile: pytest.ini
collecting 0 items                                                                                                                                                     adding path:/scratch/prudhomm/BIM2Modelica/CoTeTo
collected 3 items                                                                                                                                                      

tests/check_ifc2modelica.py::CheckIfc2Modelica::check_UdKB check: IFC/IFC2X3/UdKB_Unit_Test_Cases/OneZone.ifc
Space:  01
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3Rs1TvjeE4HQMq9185d0ad  will be renamed as  Zone_1
ready
check: IFC/IFC2X3/UdKB_Unit_Test_Cases/TwoZones.ifc
Space:  01
Space:  01
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0t8Y4TnjqtGRnTw6NPeuj9  will be renamed as  Zone_1
Space  3NzGTD1DeLJR3FlSqrXdUp  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/UdKB_Unit_Test_Cases/MultiZoneBuilding.ifc
Space:  None
Wall  2POqWd0toNHROK30LUa343  does collide with Space 3xacnLfsM_HPgGHIRuWpMI  and needs to be repaired...
Wall  3XthIqsG8PHRtyaDhxIG1T  does collide with Space 3xacnLfsM_HPgGHIRuWpMI  and needs to be repaired...
Wall  2QtYGg1rx2J9Yo$VXclYdO  does collide with Space 3xacnLfsM_HPgGHIRuWpMI  and needs to be repaired...
Space:  None
Space:  None
Space:  None
Wall  2Yu2YJxeLPGhGsxYYNXkrR  does collide with Space 3WSg218Vi7GvlkeGXRYv1e  and needs to be repaired...
Space:  None
Space:  None
Space:  None
Space:  None
Space:  None
Space:  None
Space:  None
Space:  None
Space:  01
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3xacnLfsM_HPgGHIRuWpMI  will be renamed as  Zone_1
Space  0ZS89wiqazG8UX_mlHhUSo  will be renamed as  Zone_2
Space  1bshZfpTvuHP22DqhSU$H1  will be renamed as  Zone_3
Space  3WSg218Vi7GvlkeGXRYv1e  will be renamed as  Zone_4
Space  1TUXNQiq_DIen8yu8RLBLL  will be renamed as  Zone_5
Space  0vCjP5uRi9GQ0UwhSHU_8Z  will be renamed as  Zone_6
Space  1ErR2269$2J9HN_IL5oKjT  will be renamed as  Zone_7
Space  256QIrMn3TIONSCdFXWDn_  will be renamed as  Zone_8
Space  1SJp_3fyCSHf03tuFtP1YY  will be renamed as  Zone_9
Space  2RTlTTdbHeHfOwN2ZXxAv0  will be renamed as  Zone_10
Space  3RVyJb7CyAJR86_EwiHH8c  will be renamed as  Zone_11
Space  0JuRo7Utw1He5uTVScZaH1  will be renamed as  Zone_12
Space  3iLI4eTzPsHe5kCfE8mHt4  will be renamed as  Zone_13
ready
check: IFC/IFC2X3/UdKB_Unit_Test_Cases/RooftopBuilding3ZonesThin.ifc
Space:  014
slab_volume:  1.3077154999999998  ...  0.00039157446879989897
Slab  0fz1XmgMb2Sxpyp$anHff3  does collide with Space 0uEljOhbDEKg_Ik2yBH7M8  and needs to be repaired...
slab_volume:  1.3077154999999998  ...  0.00039157446879989886
Slab  2f21t1cUb7Fh0uFs050kH8  does collide with Space 0uEljOhbDEKg_Ik2yBH7M8  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.0003166022839198714
Slab  3zyoA89N98gwG2Dbx04AgF  does collide with Space 0uEljOhbDEKg_Ik2yBH7M8  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0054151883855986
Slab  1V9yome7bACfOTnl_GuRse  does collide with Space 0uEljOhbDEKg_Ik2yBH7M8  and needs to be repaired...
slab_volume:  0.6431674999999999  ...  0.0003166022839198714
Slab  30VL9hDUT0wRZvKeD88PMM  does collide with Space 0uEljOhbDEKg_Ik2yBH7M8  and needs to be repaired...
Space:  013
slab_volume:  1.3077154999999998  ...  0.00037603243069990423
Slab  0fz1XmgMb2Sxpyp$anHff3  does collide with Space 3KdMAFAqLBHOR5DxYKPLiN  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.00030403597750487747
Slab  0Oh3AAI$P6n8AxYXGalb6z  does collide with Space 3KdMAFAqLBHOR5DxYKPLiN  and needs to be repaired...
slab_volume:  1.3077154999999998  ...  0.000376032430699903
Slab  2f21t1cUb7Fh0uFs050kH8  does collide with Space 3KdMAFAqLBHOR5DxYKPLiN  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.005200253370898667
Slab  0RjVSAdHz8_f8GZ6gL8iaq  does collide with Space 3KdMAFAqLBHOR5DxYKPLiN  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.0003040359775048766
Slab  1OeOePdO9FJuU7hzLgT$FH  does collide with Space 3KdMAFAqLBHOR5DxYKPLiN  and needs to be repaired...
Space:  010
slab_volume:  0.3084399999999999  ...  0.0002917199999998815
Slab  2cdlJwP0b04PIBOScDqNUJ  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  1.3077154999999998  ...  0.0009347999999997592
Slab  0fz1XmgMb2Sxpyp$anHff3  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.00023702249999990366
Slab  0Oh3AAI$P6n8AxYXGalb6z  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.0002270774999999079
Slab  3zyoA89N98gwG2Dbx04AgF  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0015628274999993658
Slab  1V9yome7bACfOTnl_GuRse  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0016312724999993369
Slab  0RjVSAdHz8_f8GZ6gL8iaq  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
slab_volume:  3.4977095999999994  ...  0.002007719999999184
Slab  1XxVqFh95FbfsN$de8M9Jl  does collide with Space 06nAxisMD51QfD9$UQFFYz  and needs to be repaired...
Space:  009
slab_volume:  1.3077154999999998  ...  0.0009347999999997588
Slab  2f21t1cUb7Fh0uFs050kH8  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0006000599999997565
Slab  1V9yome7bACfOTnl_GuRse  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0006263399999997454
Slab  0RjVSAdHz8_f8GZ6gL8iaq  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  3.4977095999999994  ...  0.0007708799999996867
Slab  1XxVqFh95FbfsN$de8M9Jl  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  0.6431674999999999  ...  0.0002270774999999078
Slab  30VL9hDUT0wRZvKeD88PMM  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  0.3084399999999999  ...  0.0002917199999998814
Slab  2jsNleuZDEMxpLT6g6ifkb  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
slab_volume:  0.6431674999999998  ...  0.00023702249999990377
Slab  1OeOePdO9FJuU7hzLgT$FH  does collide with Space 0VYkwoZA19Ewe3rzJAKrRv  and needs to be repaired...
Space:  012
slab_volume:  7.293519449999998  ...  0.0006222500000002079
Slab  1V9yome7bACfOTnl_GuRse  does collide with Space 0mUF0e2DD1APHW1h3I1FJ8  and needs to be repaired...
slab_volume:  7.293519449999998  ...  0.0006507500000002173
Slab  0RjVSAdHz8_f8GZ6gL8iaq  does collide with Space 0mUF0e2DD1APHW1h3I1FJ8  and needs to be repaired...
slab_volume:  3.4977095999999994  ...  0.0008360000000002793
Slab  1XxVqFh95FbfsN$de8M9Jl  does collide with Space 0mUF0e2DD1APHW1h3I1FJ8  and needs to be repaired...
Space:  006
slab_volume:  7.293519449999998  ...  0.0006976125000002329
Slab  1V9yome7bACfOTnl_GuRse  does collide with Space 3kCIfyUOP5Tx7KUi89DMoR  and needs to be repaired...
slab_volume:  3.4977095999999994  ...  0.0008213940000002743
Slab  1XxVqFh95FbfsN$de8M9Jl  does collide with Space 3kCIfyUOP5Tx7KUi89DMoR  and needs to be repaired...
Space:  007
slab_volume:  7.293519449999998  ...  0.0008401249999995342
Slab  0RjVSAdHz8_f8GZ6gL8iaq  does collide with Space 3KgdSn0VvFKgeAMqx4lQa6  and needs to be repaired...
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0uEljOhbDEKg_Ik2yBH7M8  will be renamed as  Zone_1
Space  3KdMAFAqLBHOR5DxYKPLiN  will be renamed as  Zone_2
Space  06nAxisMD51QfD9$UQFFYz  will be renamed as  Zone_3
Space  0VYkwoZA19Ewe3rzJAKrRv  will be renamed as  Zone_4
Space  0mUF0e2DD1APHW1h3I1FJ8  will be renamed as  Zone_5
Space  3kCIfyUOP5Tx7KUi89DMoR  will be renamed as  Zone_6
Space  3KgdSn0VvFKgeAMqx4lQa6  will be renamed as  Zone_7
ready
check: All files have been generated
check: Checking for errors in files
tmp/OneZone.mo and ModelicaModels_reference/IFC2X3/UdKB_Unit_Test_Cases/OneZone.mo are different line  30
// used value: off
 // used value: on

FAILED
tests/check_ifc2modelica.py::CheckIfc2Modelica::check_SBT check: IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-1_SB.ifc
Space:  001
Space:  002
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0JCu5VI4nBdfLQf8hvhe0y  will be renamed as  Zone_1
Space  3RVcMR8v58JuFBhR6VRU36  will be renamed as  Zone_2
Space  2PntKkcFD50utlu3fYIkaF  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-2_SB.ifc
Space:  003
Space:  001
Space:  002
Space:  005
Space:  004
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  1CSstAk1PCXun4LV7E706m  will be renamed as  Zone_1
Space  0JCu5VI4nBdfLQf8hvhe0y  will be renamed as  Zone_2
Space  3RVcMR8v58JuFBhR6VRU36  will be renamed as  Zone_3
Space  2Oy6VHpOz9_RQ0B9PgtbVh  will be renamed as  Zone_4
Space  2PntKkcFD50utlu3fYIkaF  will be renamed as  Zone_5
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-3_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0JCu5VI4nBdfLQf8hvhe0y  will be renamed as  Zone_1
Space  2PntKkcFD50utlu3fYIkaF  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-4_SB.ifc
Space:  001
Space:  002
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0JCu5VI4nBdfLQf8hvhe0y  will be renamed as  Zone_1
Space  3RVcMR8v58JuFBhR6VRU36  will be renamed as  Zone_2
Space  2PntKkcFD50utlu3fYIkaF  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-5_SB.ifc
Space:  001
Space:  002
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0JCu5VI4nBdfLQf8hvhe0y  will be renamed as  Zone_1
Space  3RVcMR8v58JuFBhR6VRU36  will be renamed as  Zone_2
Space  2PntKkcFD50utlu3fYIkaF  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-1_SB.ifc
Space:  002
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3HFtwtgyn82R9m01cIZDoS  will be renamed as  Zone_1
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_2
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-2_SB.ifc
Space:  002
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3HFtwtgyn82R9m01cIZDoS  will be renamed as  Zone_1
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_2
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-3_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_1
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-4_SB.ifc
Space:  002
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3HFtwtgyn82R9m01cIZDoS  will be renamed as  Zone_1
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_2
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-5_SB.ifc
Space:  002
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3HFtwtgyn82R9m01cIZDoS  will be renamed as  Zone_1
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_2
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-6_SB.ifc
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_1
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-7_SB.ifc
Space:  001
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2nKFSCxgX5uxbmQhVK2Tvg  will be renamed as  Zone_1
Space  1ErAmZv7P4yhzWYVah_0el  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSO-1_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2lOp5G9$f9QRMcsW93aOkL  will be renamed as  Zone_1
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSO-2_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2lOp5G9$f9QRMcsW93aOkL  will be renamed as  Zone_1
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSO-3_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2lOp5G9$f9QRMcsW93aOkL  will be renamed as  Zone_1
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSW-1_SB.ifc
Space:  001 
Space:  003
Space:  004
Space:  005
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0iL9Evu3945gqp1dMGwuTK  will be renamed as  Zone_1
Space  2v9jlfj8L2TOoOCQ7M0$rK  will be renamed as  Zone_2
Space  2vp8PUC1P6_O6i0HF3sQMS  will be renamed as  Zone_3
Space  1zrTDILdb0hR2IBuGlbe71  will be renamed as  Zone_4
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_5
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSW-3_SB.ifc
Space:  001 
Space:  001 
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2g9AyjZhL1wv1ozAyfsvs3  will be renamed as  Zone_1
Space  3P2XD6EBD4vxseSu4gK1jn  will be renamed as  Zone_2
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSW-4_SB.ifc
Space:  001 
Space:  004 
Space:  003 
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0iL9Evu3945gqp1dMGwuTK  will be renamed as  Zone_1
Space  1vnD_8lH9FRAZkHyXDgePW  will be renamed as  Zone_2
Space  1$6nSFevP9Qw_EGBB6zfVJ  will be renamed as  Zone_3
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_4
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/CSW-8_SB.ifc
Space:  003 
Space:  001 
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2_mIaAa8fAc82F7js6zAJp  will be renamed as  Zone_1
Space  0_VaG0OQnE6gBsfpS0LxfW  will be renamed as  Zone_2
Space  1n$Vx7SRX4QBWT_iZG$4lB  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SOAW-1_SB.ifc
Space:  003
Space:  002
Space:  001
Space:  005
Space:  004
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0uO$S1HOX7r8lVa3pk46do  will be renamed as  Zone_1
Space  2KnM_t27L2MPXtsQdoIz0G  will be renamed as  Zone_2
Space  10RgiMcZXDKOAsEQ9oC7iC  will be renamed as  Zone_3
Space  30fcuVxajAUu_P7dufpY8p  will be renamed as  Zone_4
Space  3eZChmfqP1EBOvP8e_3SqY  will be renamed as  Zone_5
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SOAW-3_SB.ifc
Space:  016
Space:  015
Space:  021
Space:  020
Space:  019
Space:  009
Space:  010
Space:  017
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0HHlD1BI5CpAzSxIvynMF2  will be renamed as  Zone_1
Space  2UiGUNCRTA$OCkmz4OGNOJ  will be renamed as  Zone_2
Space  3cdrrAr8TAGQcG2DD2vJZ3  will be renamed as  Zone_3
Space  2GhAENeir9Lfeu6eRnqDdU  will be renamed as  Zone_4
Space  2rPJrR50TC3g$DlLAasyd_  will be renamed as  Zone_5
Space  1ofhNqTlb3MAl9r1h84CZ8  will be renamed as  Zone_6
Space  3IRxF8R1j24R97S6tdbO96  will be renamed as  Zone_7
Space  2I6sBaUXj7wAJ2HbAZMowc  will be renamed as  Zone_8
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SOWW-1_SB.ifc
Space:  003
Space:  002
Space:  001
Space:  005
Space:  004
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  2S8GKnPcv1yw3qvwjZoIDz  will be renamed as  Zone_1
Space  0hyUfN_6H1aAOXonG3$JoP  will be renamed as  Zone_2
Space  0Tqwj1L6b37hyth3xlRvWl  will be renamed as  Zone_3
Space  2nTVqnl_95Kw945l37LbRU  will be renamed as  Zone_4
Space  04c_AZJUz6ZuOneNJAZxMO  will be renamed as  Zone_5
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SOWW-2_SB.ifc
Space:  001
Space:  003
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  33qSmNe9z3qwGYzMFN5cOu  will be renamed as  Zone_1
Space  29fZpZrb1DWAjr0dL1d_qA  will be renamed as  Zone_2
Space  0S$$NX7JH3fecPolGGrgOz  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SOWW-3_SB.ifc
Space:  001
Space:  003
Space:  002
Space:  004
Space:  005
Space:  006
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  1tPuRWxQ98IhjRP$c65exA  will be renamed as  Zone_1
Space  3J9yraCKrCFfEOvSh0PHUu  will be renamed as  Zone_2
Space  3P$QKRf8vFj9KIiTFdiF$S  will be renamed as  Zone_3
Space  2RLdgZMjL0VQoW__radZ$$  will be renamed as  Zone_4
Space  3EatCAgaT6$Rin1iTrHc9m  will be renamed as  Zone_5
Space  1fV6o3UAj0g8yVI2_djwkg  will be renamed as  Zone_6
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SWW-3_SB.ifc
Space:  003
Space:  001 
Space:  005 
Space:  002 
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  1f5H32LrP9mfQPsZ0f4fMH  will be renamed as  Zone_1
Space  3xlGWNNZzEgwcXrED3yhVL  will be renamed as  Zone_2
Space  3YxyLVwoDAhxsOMClnEq1j  will be renamed as  Zone_3
Space  01z3OMcPj66AMvQ2gNszXE  will be renamed as  Zone_4
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SWW-4_SB.ifc
Space:  003 
Space:  001 
Space:  006
Space:  005
Space:  002
Space:  004
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  1QkkMGwvn9v96m2EpKOhjX  will be renamed as  Zone_1
Space  0il6UrFmn2Gu16BEUURQFo  will be renamed as  Zone_2
Space  11PQ0MZ3D2jv4ZnsUZbxg_  will be renamed as  Zone_3
Space  2QXBqktKbE49cnQ41P99CN  will be renamed as  Zone_4
Space  10$CPmPu5EnODeZik8ERF0  will be renamed as  Zone_5
Space  3xXYWqktXAaOqSE8OKtkuu  will be renamed as  Zone_6
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/SWW-5_SB.ifc
Space:  001 
Space:  003
Space:  004
Space:  005
Space:  012
Space:  011
Space:  010
Space:  008
Space:  009
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0PyfxgBoXAjhNOP0Htedes  will be renamed as  Zone_1
Space  2orZ8wCz5F0gu1ADH3je9n  will be renamed as  Zone_2
Space  0jhG8g7l5BhQzfqrGFyCF$  will be renamed as  Zone_3
Space  2IZvOBYaP5iBQkz$KYK3bv  will be renamed as  Zone_4
Space  08qKVjmWr3_xlY9RYuogRq  will be renamed as  Zone_5
Space  2KU6bTYBP6avNYHgQOzTHs  will be renamed as  Zone_6
Space  2L$fOrfE18NhhAQeZXqhJU  will be renamed as  Zone_7
Space  3akYvLN$P83vmx8Ajc8Uo4  will be renamed as  Zone_8
Space  01UqOr2fb7wPNgzDrPGQbS  will be renamed as  Zone_9
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-1_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0aykCDXW1Bd8iPvRughz3b  will be renamed as  Zone_1
Space  2ENZlb5CL97em9XO6n3KZI  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-3_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3abTS$8lTFMxYsLMD5QHXI  will be renamed as  Zone_1
Space  0hSs6zP5jDRvVdEa2fOdli  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-4_SB.ifc
Space:  003    
Space:  001      
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  1oB_u61KrFIQd62cZBr2U7  will be renamed as  Zone_1
Space  39B4mifgrAFA4NBu0Vl07R  will be renamed as  Zone_2
Space  0hSs6zP5jDRvVdEa2fOdli  will be renamed as  Zone_3
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-5_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0aykCDXW1Bd8iPvRughz3b  will be renamed as  Zone_1
Space  2ENZlb5CL97em9XO6n3KZI  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-6_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  0aykCDXW1Bd8iPvRughz3b  will be renamed as  Zone_1
Space  2ENZlb5CL97em9XO6n3KZI  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-7_SB.ifc
Space:  001
Space:  002
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3abTS$8lTFMxYsLMD5QHXI  will be renamed as  Zone_1
Space  0hSs6zP5jDRvVdEa2fOdli  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/Wi-9_SB.ifc
Space:  1
slab_volume:  42.432000000000016  ...  0.015620000000016177
Slab  1fIUmKrtrF2e4VS_xH7G_d  does collide with Space 09eWSSo0P3ABB1qmTjpt6H  and needs to be repaired...
Space:  2
slab_volume:  42.432000000000016  ...  0.015620000000045781
Slab  1bH1yG0ML088vafOcqpb92  does collide with Space 1iqh7olLb1A9bhpXAA2ZQF  and needs to be repaired...
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  09eWSSo0P3ABB1qmTjpt6H  will be renamed as  Zone_1
Space  1iqh7olLb1A9bhpXAA2ZQF  will be renamed as  Zone_2
ready
check: IFC/IFC2X3/SBT_Unit_Test_Cases/WW-3_SB.ifc
Space:  007
Space:  008
Space:  006
Space:  003
Thermal zones are not specified. Each space will be treated as a single thermal zone
Space  3BPwNF$5fDIenhZZX9Gsq9  will be renamed as  Zone_1
Space  3_gYqoe8bD5PBic4ioY2W$  will be renamed as  Zone_2
Space  2qGJzd1Wv4IPfaX0hMNpSP  will be renamed as  Zone_3
Space  2NePviQoH8s9fPdIgKc00m  will be renamed as  Zone_4
ready
check: All files have been generated
check: Checking for errors in files
tmp/AWS1_SB.mo and ModelicaModels_reference/IFC2X3/SBT_Unit_Test_Cases/AWS1_SB.mo are different line  30
// used value: off
 // used value: on

FAILED
tests/check_ifc2modelica.py::CheckIfc2Modelica::check_test SKIPPED (test)

=============================================================================== FAILURES ===============================================================================
_____________________________________________________________________ CheckIfc2Modelica.check_UdKB _____________________________________________________________________

self = <check_ifc2modelica.CheckIfc2Modelica object at 0x7fab5054fb50>

    def check_UdKB(self):
        """
        Check if generated files from the UdKB_Unit_Test_Case are correct
        """
>       assert(self.my_check(UdKB_ifc,
                             UdKB_mo,
                             UdKB_mo_expected,
                             "ModelicaModels.IFC2X3.UdKB_Unit_Test_Cases",
                             "Modelica://ModelicaModels/Resources/Scripts/Dymola/IFC2X3/UdKB_Unit_Test_Cases/"))
E       AssertionError: assert False
E        +  where False = <bound method CheckIfc2Modelica.my_check of <check_ifc2modelica.CheckIfc2Modelica object at 0x7fab5054fb50>>([('IFC/IFC2X3/UdKB_Unit_Test_Cases/OneZone.ifc', 'OneZone'), ('IFC/IFC2X3/UdKB_Unit_Test_Cases/TwoZones.ifc', 'TwoZone..., 'MultiZoneBuilding'), ('IFC/IFC2X3/UdKB_Unit_Test_Cases/RooftopBuilding3ZonesThin.ifc', 'RooftopBuilding3ZonesThin')], [], ['ModelicaModels_reference/IFC2X3/UdKB_Unit_Test_Cases/OneZone.mo', 'ModelicaModels_reference/IFC2X3/UdKB_Unit_Test_Ca..._Test_Cases/MultiZoneBuilding.mo', 'ModelicaModels_reference/IFC2X3/UdKB_Unit_Test_Cases/RooftopBuilding3ZonesThin.mo'], 'ModelicaModels.IFC2X3.UdKB_Unit_Test_Cases', 'Modelica://ModelicaModels/Resources/Scripts/Dymola/IFC2X3/UdKB_Unit_Test_Cases/')
E        +    where <bound method CheckIfc2Modelica.my_check of <check_ifc2modelica.CheckIfc2Modelica object at 0x7fab5054fb50>> = <check_ifc2modelica.CheckIfc2Modelica object at 0x7fab5054fb50>.my_check

/scratch/prudhomm/BIM2Modelica/tests/check_ifc2modelica.py:173: AssertionError
_____________________________________________________________________ CheckIfc2Modelica.check_SBT ______________________________________________________________________

self = <check_ifc2modelica.CheckIfc2Modelica object at 0x7faa79ae36d0>

    def check_SBT(self):
        """
        Check if generated files from the SBT_Unit_Test_Case are correct
        """
>       assert(self.my_check(SBT_ifc,
                             SBT_mo,
                             SBT_mo_expected,
                             "ModelicaModels.IFC2X3.SBT_Unit_Test_Cases",
                             "Modelica://ModelicaModels/Resources/Scripts/Dymola/IFC2X3/SBT_Unit_Test_Cases/"))
E       AssertionError: assert False
E        +  where False = <bound method CheckIfc2Modelica.my_check of <check_ifc2modelica.CheckIfc2Modelica object at 0x7faa79ae36d0>>([('IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-1_SB.ifc', 'AWS1_SB'), ('IFC/IFC2X3/SBT_Unit_Test_Cases/AWS-2_SB.ifc', 'AWS2_SB'.../IFC2X3/SBT_Unit_Test_Cases/AWS-5_SB.ifc', 'AWS5_SB'), ('IFC/IFC2X3/SBT_Unit_Test_Cases/CSC-1_SB.ifc', 'CSC1_SB'), ...], [], ['ModelicaModels_reference/IFC2X3/SBT_Unit_Test_Cases/AWS1_SB.mo', 'ModelicaModels_reference/IFC2X3/SBT_Unit_Test_Case...eference/IFC2X3/SBT_Unit_Test_Cases/AWS5_SB.mo', 'ModelicaModels_reference/IFC2X3/SBT_Unit_Test_Cases/CSC1_SB.mo', ...], 'ModelicaModels.IFC2X3.SBT_Unit_Test_Cases', 'Modelica://ModelicaModels/Resources/Scripts/Dymola/IFC2X3/SBT_Unit_Test_Cases/')
E        +    where <bound method CheckIfc2Modelica.my_check of <check_ifc2modelica.CheckIfc2Modelica object at 0x7faa79ae36d0>> = <check_ifc2modelica.CheckIfc2Modelica object at 0x7faa79ae36d0>.my_check

/scratch/prudhomm/BIM2Modelica/tests/check_ifc2modelica.py:183: AssertionError
=========================================================================== warnings summary ===========================================================================
tests/check_ifc2modelica.py::CheckIfc2Modelica::check_UdKB
  /scratch/prudhomm/BIM2Modelica/CoTeTo/CoTeTo/Loaders/XMLFile.py:46: DeprecationWarning: invalid escape sequence '\{'
    tag = re.match('^\{'+xmlns+'\}(.*)$',tag).group(1)

tests/check_ifc2modelica.py::CheckIfc2Modelica::check_UdKB
  /scratch/prudhomm/BIM2Modelica/CoTeTo/CoTeTo/Loaders/XMLFile.py:46: DeprecationWarning: invalid escape sequence '\}'
    tag = re.match('^\{'+xmlns+'\}(.*)$',tag).group(1)

tests/check_ifc2modelica.py: 47 warnings
  /scratch/prudhomm/BIM2Modelica/CoTeTo/CoTeTo/import_file.py:12: DeprecationWarning: Deprecated since Python 3.4 and slated for removal in Python 3.12; use importlib.util.find_spec() instead
    loader = importlib.find_loader(module)

tests/check_ifc2modelica.py: 47 warnings
  <frozen importlib._bootstrap>:283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead

-- Docs: https://docs.pytest.org/en/stable/warnings.html
======================================================================= short test summary info ========================================================================
FAILED tests/check_ifc2modelica.py::CheckIfc2Modelica::check_UdKB - AssertionError: assert False
FAILED tests/check_ifc2modelica.py::CheckIfc2Modelica::check_SBT - AssertionError: assert False
======================================================== 2 failed, 1 skipped, 96 warnings in 474.59s (0:07:54) =========================================================

create a docker image for bim2modelica

create a docker image to distribute bim2modelica and associated tools

The image should use ghcr.io/feelpp/bim2modelica-env:<tag> to start from and provide in ci.yml the generation of the docker image ghcr.io/feelpp/bim2modelica:<tag>

please docker the action docker/metadata to properly version the docker image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.