{"id":21419392,"url":"https://github.com/konstantin8105/hd","last_synced_at":"2025-07-11T14:15:31.750Z","repository":{"id":51985243,"uuid":"140116023","full_name":"Konstantin8105/hd","owner":"Konstantin8105","description":"FEM(finite element method) for structural engineer","archived":false,"fork":false,"pushed_at":"2023-08-20T16:04:59.000Z","size":1754,"stargazers_count":5,"open_issues_count":6,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-19T23:14:19.696Z","etag":null,"topics":["fem","finite-element-methods","go","golang","structural-engineering"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Konstantin8105.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-07T20:51:02.000Z","updated_at":"2023-02-23T17:02:10.000Z","dependencies_parsed_at":"2024-06-19T22:52:05.779Z","dependency_job_id":"52a8e34f-d031-4c4f-9158-b8caebeb2fe2","html_url":"https://github.com/Konstantin8105/hd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konstantin8105%2Fhd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konstantin8105%2Fhd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konstantin8105%2Fhd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konstantin8105%2Fhd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Konstantin8105","download_url":"https://codeload.github.com/Konstantin8105/hd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225957311,"owners_count":17551320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fem","finite-element-methods","go","golang","structural-engineering"],"created_at":"2024-11-22T19:40:49.963Z","updated_at":"2024-11-22T19:40:55.880Z","avatar_url":"https://github.com/Konstantin8105.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Coverage Status](https://coveralls.io/repos/github/Konstantin8105/hd/badge.svg?branch=master)](https://coveralls.io/github/Konstantin8105/hd?branch=master)\n[![Build Status](https://travis-ci.org/Konstantin8105/hd.svg?branch=master)](https://travis-ci.org/Konstantin8105/hd)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Konstantin8105/hd)](https://goreportcard.com/report/github.com/Konstantin8105/hd)\n[![GoDoc](https://godoc.org/github.com/Konstantin8105/hd?status.svg)](https://godoc.org/github.com/Konstantin8105/hd)\n![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)\n\n# hd\n\nFEM(finite element method) for structural engineer\n\n```\nSpecific of truss:\n* Generally truss finite element and beam finite element with moment free on node is not the same.\nfor truss stiffiner matrix look like that\n⎡ * 0 0 * 0 0 ⎤\n⎢ 0 0 0 0 0 0 ⎥\n⎢ 0 0 0 0 0 0 ⎥\n⎢ * 0 0 * 0 0 ⎥\n⎢ 0 0 0 0 0 0 ⎥\n⎣ 0 0 0 0 0 0 ⎦\nfor beam with moment free on nodes stiffiner matrix look like that\n⎡ * 0 0 * 0 0 ⎤\n⎢ 0 * 0 0 * 0 ⎥\n⎢ 0 0 0 0 0 0 ⎥\n⎢ * 0 0 * 0 0 ⎥\n⎢ 0 * 0 0 * 0 ⎥\n⎣ 0 0 0 0 0 0 ⎦\nSo, if we have 2 free moment, then also add free by Y direction for bith beam points\n```\n\n#### Coverage\n\n```\ngo test -coverprofile=coverage.out ./...\ngo tool cover -html=coverage.out\n```\n\nor on one line:\n\n```\ngo test -coverprofile=coverage.out ./... ; go tool cover -html=coverage.out ; rm coverage.out\n```\n\n### Benchmark\n\nIn folder `mod` run:\n\n```cmd\ngo test -v -run=Benchmark -bench=Benchmark -benchmem -cpuprofile cpu.prof -memprofile mem.prof\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/Konstantin8105/hd/mod\nBenchmarkRun/____1-cases20-4         \t    5184\t    202061 ns/op\t   95197 B/op\t    1052 allocs/op\nBenchmarkRun/____2-cases20-4         \t    3676\t    275535 ns/op\t  134711 B/op\t    1288 allocs/op\nBenchmarkRun/____4-cases20-4         \t    2658\t    446752 ns/op\t  226851 B/op\t    1778 allocs/op\nBenchmarkRun/____8-cases20-4         \t    1460\t    807288 ns/op\t  440599 B/op\t    2738 allocs/op\nBenchmarkRun/___16-cases20-4         \t     687\t   1736805 ns/op\t  928967 B/op\t    4640 allocs/op\nBenchmarkRun/___32-cases20-4         \t     230\t   5137632 ns/op\t 2239788 B/op\t    8456 allocs/op\nBenchmarkRun/___64-cases20-4         \t      57\t  18934656 ns/op\t 6173719 B/op\t   16063 allocs/op\nBenchmarkRun/__128-cases20-4         \t      10\t 105636607 ns/op\t18726030 B/op\t   31323 allocs/op\nPASS\nok  \tgithub.com/Konstantin8105/hd/mod\t11.064s\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonstantin8105%2Fhd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonstantin8105%2Fhd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonstantin8105%2Fhd/lists"}