dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Code-Aster для строительства. Материалы для освоения и развития

Code-Aster для строительства. Материалы для освоения и развития

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 20.02.2013, 05:24 6 |
Code-Aster для строительства. Материалы для освоения и развития
ETCartman
 
Ansys, SolidWorks, etc
 
Texas
Регистрация: 09.12.2008
Сообщений: 4,582

ETCartman вне форума Вставить имя

Данная тема назревала довольно давно, создана отчасти как самостоятельная, отчасти как ветвь данной темы.

1) Что такое Code-Aster? Это открытая расчетная программа индустриального класса (уровня ANSYS и пр.), сертифицированная по ISO, изначально созданная и развиваемая как основной расчетный инструмент французской атомной и энегретической отрасли (EDF)
Как и ANSYS она не является собственно строительной, это МКЭ программа общего назначения (машиностроение, строительство и пр.), но к слову говоря в определенном смысле она более строительная чем ANSYS (специальные модели для грунтов, бетона, вантовые элементы с которыми в ансисе большие траблы) и проч. В силу многообразия функций и обширной поддержки она естественно лучше чем другие открытые программы приспособлена для адаптации под разные специальные нужды. То есть таким образом это не продвинутый калькулятор ++ вроде скад-лира, а тяжелый пакет к которому применим глагол "моделировать". То есть воспроизводить реальное поведение конструкций с учетом нелинейностей, а не просто считать внутренние усилия по линейной теории и затем прогонять их через арифметические алгоритмы норм. К слову усилия в Code-Aster тоже естественно можно получать и потом обсчитывать по ним с учетом требований снипов и сп. Хотя как калькулятор она едва ли в конечном итоге окажется удобной.


2) имеющиеся на сайте материалы выложенные в dnl находятся поиском по ключевым словам. Можете просто нажать ссылку ПО для поиска материалов по открытому и бесплатному софту (до кучи).
Официальный сайт и сайты поддерживающих компаний:
http://www.code-aster.org (английский и французский переключается - там же есть активный форум на двух языках).
http://www.salome-platform.org/ (это основной пре-построцессор, тоже открытый)
http://code-aster.de/ ,
http://www.alneos.com
Конечно же в обязательном порядке
http://caelinux.com/CMS/
и его вики
http://caelinux.org/wiki/index.php/Main_Page

(форум там есть). Я еще напишу про этот сайт ниже.
http://necs.fr/ (c виндоус версией которая есть также тут http://sourceforge.net/projects/asterwin/
Русскоязычный форум (не особо активный и продуктивный)
http://freecae.ru/
Проект с попыткой перевода на английский
http://codeaster-intl.sourceforge.net/ (http://sourceforge.net/projects/codeaster-intl/)
там же можете взять текстовый файл интернационализации и переводить на русский, башкирский, татарский и другие языки народов СССР
Интерфейс для Python
http://www.libaster.org/
Ссылок и сайтов еще очень много и я просто оставлю тут место для них (и также, надеюсь, они будут появляться в процессе обсуждения)

3) Как начать изучать и пользоваться? Хотя виндоус версия есть, она прошла большую часть верификационных тестов, но она старая и для открытой программы это критично. Открытая программа - это на самом деле не одна а куча программ, куча форматов файлов которые меняются от версии к версии иногда. Все в совокупности это приведет к тому что вы будете не понимать что и от чего глючит. Кроме того большая часть англоязычных примеров относится к более новым версиям.
К виндоус версии лучше обращаться после того как будут получены уверенные навыки владения в более подходящей системе.
Как установить линукс если вы никогда не имели с ним дело? И какой лучше дистрибутив взять.
дистрибутив однозначно лучше этот
заполняете форму (для статистики), выбираете 11 версию (последняя на сегодняшний день) и кнопку download
далее вариантов много
3.1) прожечь iso образ на dvd и запускать как живой диск (посмотреть можно но работать практически нет).
3.2) установить второй системой на компьютер. это лучший вариант но не всегда. во первых до этого (лучше всего) заранее приготовить места на диске (три раздела для линукс - swap, /home и / . во вторых многие виндоус программы постоянно затирают загрузчик и потом могут быть проблемы с запусканием в том числе и виндоус. это не проблема для оптыных юзверей но не рекомендуется для начинающих.
3.3) Установить на отдельную флешку и загружать ее с usb - неплохой вариант, но тоже требует гугления и некоторых усилий. Тоже опять же загрузчик.
3.4) Скачать виртуальный плеер (виндоус программа) http://www.vmware.com/products/player/ , установить его, подцепить загруженный iso при запуске диалога. Получится линукс работающий из windows. То есть конечно это будет не нормальный линукс (быстрая и удобная система), но что то внешне очень похоже. Проблемы с доступом к дискам, видеокартой и пр. Но так или иначе для начального обучения этого может быть достаточно. Я сам лично давно не пользовался, ввиду постоянного использования линукс как основной системы
К слову такой вариант лучше чем использование виндоус версии еще и потому что на caelinux-е все предустановлено - то есть не только code-aster но и куча других программ которые могут быть полезны с ним

4) Литературы на английском по code-aster к настоящему моменту не так уж и мало. Тут выкладываю файл с примерами по расчету стержневых систем и кабелей. Не смотря на кажущуюся сложность логика работы программы очень простая. даже проще чем у обычных наверно. основана на стандартных форматах сеток (unv, med, mail) и именованных группах узлов и элементов этой сетки. К этим группам прикладываются нагрузки, закрепления, назначаются материалы, сечения и пр. с помощью текстового командного файла который формируется в блокноте или в интеративной базе команд Eficas. Понимание команд и перевод Eficas-а я является ключом к освоению всей программы. К слову помомо стандартных команд язык code-aster предлагает и стандартные функции управления моделью и результатами (как ANSYS APDL) и плюс интерфейс к пайтону вообще делает эту программу клондайком для тех кто имеет соответствующие навыки или не против их заиметь.

5) Соучастниками создания темы являются члены группы разработчиков бесплатного софта (см. самую первую ссылку) и в частности DEM
То что открыл именно я - связано с сдвижкой по времени, потому что когда форум будет активен я буду спать. А потом поеду на работу и приеду когда все участники будут спать.
Актуальным вопросом является трансляция модели из одной из общераспространенных программ (например скад-лира) в достаточную по функциональности открытую (из которых Code-Aster по большому счету самый привлекательный претендент). Однако с моей точки зрения (которая основана на некотором опыте использования программ обеих типов - то есть строительных калькуляторов и тяжелых классических) - путь это почти что тупиковый. Можно будет сравнительно легко транслировать какие то простые вещи. Например сетку. Или если постараться то сетку с группами. Но практически любая реальная модель после трансляции будет требовать такой глубокой доработки что смысл практический это действие потеряет. Это чисто в силу разницы и несовместимости идеологий, математики конечных элементов, типов нагрузок и видов расчетов и так далее. На мой взгляд более простым (и с большим количеством последующих полезных применений) будет являться способ - от абстрактной модели конструкции к любой из программ.
То есть легче будет создать собственный описательный язык конструкции и уже из создаваемой на его основе базы данных транслировать модель и в скад и в code-aster и при надобности куда угодно (в calculix или ANSYS и тд). При таком подходе надо будет записывать текстовый файл в определенном формате - что достигается легко даже с самыми элементарными навыками программирования. Да и идеологически этот подход более верный. Допустим завтра скад вообще аннулирует текстовые файлы. Или изменит их сильно. Практически придется все начинать с нуля. Да и почему именно скад? Цель то инженера - свободно использовать любые доступные инструменты эффективно. Для создания такого описательного языка в принципе не надо писать какую то отдельную программу. Нужно просто взять за основу какой то сеточный формат с группами который легко читается кодом на любом языке и наиболее распростраен в качестве формата для обмена. претендентов на такой формат не много. если брать коммерческие программы то наверно самым удобным будет формат abacus (и он же calculix) или nastran. Другой вариант - MSH, UNV или MED. Я бы выбрал если честно UNV как самый универсальный и несложный. К тому же с большим количеством готовых конвертеров изо всего и во все. Но этот выбор не принципиален и можно даже выбрать несколько таких форматов. Это всего лишь стандартная сетка для численных задач и все. Сетка то что все конечно элементные программы объединяет (хотя может быть и разной). В конечном итоге если выбирается тот же unv то и сетка не важна. Разбивается она в том же GMSH на раз а группы привязаны к геометрическим элементам (пластинам целиком, стержням и так далее).
Собственно база данных состоит из массивов которые могут заполняться хоть где и хоть как. Например в электронных таблицах (что естественно коль речь идет о массивах данных в виде таблиц). таким образом вы можете строить модель в скаде не открывая его совсем. или с небольшими правками. задавать нагрузку сразу на все плиты просто поменяв одну цифру в таблице. Сгустить сетку не трогая нагрузок вообще, сделать параметрическую модель здания и только менять размеры. И сделать такую передачу будет на порядок проще чем выуживать что то откуда то и пытаться приспособить голову бобра к телу осла.
Я потом еще продолжу на эту тему, пока все.

Вложения
Тип файла: pdf Beam-cable-gmsh-aster.pdf (1.97 Мб, 707 просмотров)


Последний раз редактировалось ETCartman, 20.02.2013 в 17:26.
Просмотров: 39027
 
Непрочитано 26.09.2018, 16:16
#121
master_luc

Расчеты и проектирование
 
Регистрация: 15.04.2010
Минск
Сообщений: 341


Цитата:
Сообщение от ETCartman Посмотреть сообщение
Во всяком случае оболочки.
Прошу прощение, а где в Calculix вы нашли оболочки:
Manual on http://www.dhondt.de/ccx_2.12.pdf page 84 to 112.
__________________
Обезъяна с гранатой :crazy:
master_luc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 16:22
#122
miko2009

Инженер-конструктор
 
Регистрация: 13.10.2011
Москва
Сообщений: 2,267


85 стр.
__________________
AR and VR application
miko2009 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 16:55
#123
master_luc

Расчеты и проектирование
 
Регистрация: 15.04.2010
Минск
Сообщений: 341


In CalculiX, S4 and S4R four-node shell elements are expanded into three-
dimensional C3D8I and C3D8R
elements, respectively.
__________________
Обезъяна с гранатой :crazy:
master_luc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 17:01
#124
miko2009

Инженер-конструктор
 
Регистрация: 13.10.2011
Москва
Сообщений: 2,267


Насколько я понял речь не о полной замене, а о том что можно получить объемный элемент C3D8I за счет " drop the middle nodes" - перемещения узлов.
__________________
AR and VR application
miko2009 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 17:19
#125
master_luc

Расчеты и проектирование
 
Регистрация: 15.04.2010
Минск
Сообщений: 341


Хм-хм...я права даже и не знаю...перевести для вас или оставить в счастливом заблуждение.
В общем и целом: все шелы переходят в Объмники, линейные элементы получают по аналогии с квадратными опусканием узлов по середине ребер.
__________________
Обезъяна с гранатой :crazy:
master_luc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 20:48
#126
miko2009

Инженер-конструктор
 
Регистрация: 13.10.2011
Москва
Сообщений: 2,267


Цитата:
Сообщение от master_luc Посмотреть сообщение
.перевести для вас или оставить в счастливом заблуждение
скорее это в вашем счастливом заблуждении все переходит в объемник. Во время расчета автоматически создаются дополнительные узлы которые задают толщину пластины (и по справке этот тип КЭ рекомендуется применять только при расчете на изгиб) и для вас там даже картинка есть где показывается стык пластин по средней линии см. стр 88 (стык оболочек), дополнительные узлы служат для уточнения нормалей во время разложении матрицы.
__________________
AR and VR application
miko2009 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.09.2018, 21:39
#127
master_luc

Расчеты и проектирование
 
Регистрация: 15.04.2010
Минск
Сообщений: 341


видео , но это ни как не опровергает слова оффициальной документации и код программы, в котором я не нашел пластинок...
"...
6.2.12 Six-node shell element (S6)
This is a general purpose triangular shell element. The node numbering and
the direction of the normal to the surface is shown in Figure 58.
In CalculiX, six-node shell elements are expanded into three-dimensional
wedge elements. The way in which this is done is illustrated in Figure 59. For
more information on shell elements the reader is referred to the eight-node shell
element in the next section.
..."
П.С. Miko2009, вообще-то вопрос был не к вам.
__________________
Обезъяна с гранатой :crazy:
master_luc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 00:20
#128
bigden


 
Регистрация: 05.08.2008
Сообщений: 534


а есть какой-нибудь отечественный открытый решатель с документацией на русском?
bigden вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 27.09.2018, 04:33
#129
ETCartman

Ansys, SolidWorks, etc
 
Регистрация: 09.12.2008
Texas
Сообщений: 4,582


Цитата:
Сообщение от master_luc Посмотреть сообщение
Прошу прощение, а где в Calculix вы нашли оболочки:
там несколько типов оболочек. S4,S3,S6,S8 и все то же с R
(Reduced integration)
Могут быть композитные слоистые - с разными материалами по слоям (S6 и S8R)
они же применяются для изгиба с физнелинейностью
Оболочка внутри программы формируется и считается как объемный элемент, что математически эквивалентно "толстой оболочке" по теории - то есть без упрощений. При сопоставлении с другими программами результаты совпадают когда берется толстая оболочка, там где она есть, например Solidworks Simulation
тут еще стоит заметить, что толстая оболочка это просто более точная теория (учет сдвигов) а не физическая толщина. Считать тонкую по теории толстой - Окей, просто больше вычислений.
На русском языке не так много книг по теории соотносимой с компьютерными расчетами, но в принципе кто мешает освоить английский технический?

Последний раз редактировалось ETCartman, 27.09.2018 в 05:49.
ETCartman вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 08:22
1 | #130
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 7,268


Цитата:
Сообщение от bigden Посмотреть сообщение
а есть какой-нибудь отечественный открытый решатель с документацией на русском?
Улкинсон, Райниш. Линейная алгебра.
__________________
Сон разума рождает чудовищ. (испанская пословица)
Бахил вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 13:12
#131
AlexKaz

Вечный студент. Интересы CalculiX, Maxima, Scilab, динамика
 
Регистрация: 08.09.2016
Пермь
Сообщений: 59


В одном из недавних релизов Guido внёс возможность создавать свои элементы. Я ещё не смотрел детали. Знаю лишь, что в прошлых релизах в каждом узле было жёстко задано ровно 3 степени свободы, и код был очень сильно завязан на тройку. Может быть Гвидо всё переписал, и теперь появится шанс добавить привычные балочные и оболочечные элементы.
AlexKaz вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 13:49
#132
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,042


уилкинсон, райнш. сборник алгоритмов и программ на языке АЛГОЛ. мир 78?

я перевел на фортран и адаптировал к блочной обработке матриц ВСЕ программы оттуда...
1987-1991 год...
метод RITZIT вошел мне в диплом...

чудо-книга!
в каждой программе одна опечатка и одна внесенная ошибка... чтобы не расслаблялись читатели.
подозреваю, что туда ошибки специально внесли при переводе.

но уважаемый БАХИЛ,как обычно, троллит...
СергейД вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 14:14
#133
master_luc

Расчеты и проектирование
 
Регистрация: 15.04.2010
Минск
Сообщений: 341


Цитата:
Сообщение от ETCartman Посмотреть сообщение
Оболочка внутри программы формируется и считается как объемный элемент, что математически эквивалентно "толстой оболочке" по теории - то есть без упрощений.
так и я об этом, что нет там оболочек, а только объемные элементы, что, впрочем, не является крамолой.
Цитата:
Сообщение от ETCartman Посмотреть сообщение
На русском языке не так много книг по теории соотносимой с компьютерными расчетами, но в принципе кто мешает освоить английский технический?
а кто жаловался на английский или отсутствие литературы: много читаю и много всего есть.
Цитата:
Сообщение от СергейД Посмотреть сообщение
но уважаемый БАХИЛ,как обычно, троллит...
за Бахилом не заржавеет
__________________
Обезъяна с гранатой :crazy:
master_luc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 17:11
#134
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 7,268


Цитата:
Сообщение от СергейД Посмотреть сообщение
в каждой программе одна опечатка и одна внесенная ошибка
Что-то ни одной не заметил. Всё очень чётко. Правда не все программы использовал.
Посмотрел исходники астера. Нашёл только разложение матрицы по сингулярным числам в фортране.
Вообще странный продукт. Куча файлов на разных языках. "Я тебя слепила из того что было"(с).
__________________
Сон разума рождает чудовищ. (испанская пословица)
Бахил вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 17:59
#135
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 903


Цитата:
Сообщение от Бахил Посмотреть сообщение
Вообще странный продукт. Куча файлов на разных языках. "Я тебя слепила из того что было"(с).
Ну это как раз не странно, это ожидаемо.
MrWhite вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2018, 18:28
#136
Vsa125


 
Регистрация: 25.01.2011
Сообщений: 25


Цитата:
Сообщение от Бахил Посмотреть сообщение
Что-то ни одной не заметил. Всё очень чётко. Правда не все программы использовал.
Посмотрел исходники астера. Нашёл только разложение матрицы по сингулярным числам в фортране.
Вообще странный продукт. Куча файлов на разных языках. "Я тебя слепила из того что было"(с).
Исходный код здесь https://bitbucket.org/code_aster/cod...44d?at=default

Используется Fortran и Python и небольшие вкрапления C, C++

Вот например матрица жесткости плиты DKQ "codeaster-src / bibfor / elements / dkqrig.F90"

Код:
[Выделить все]
! --------------------------------------------------------------------
! Copyright (C) 1991 - 2017 - EDF R&D - www.code-aster.org
! This file is part of code_aster.
!
! code_aster is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! code_aster is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with code_aster.  If not, see <http://www.gnu.org/licenses/>.
! --------------------------------------------------------------------

subroutine dkqrig(nomte, xyzl, option, pgl, rig,&
                  ener)
    implicit none
#include "asterf_types.h"
#include "jeveux.h"
#include "asterfort/assert.h"
#include "asterc/r8gaem.h"
#include "asterfort/bsthpl.h"
#include "asterfort/dkqbf.h"
#include "asterfort/dkqshp.h"
#include "asterfort/dxqgm.h"
#include "asterfort/dxmate.h"
#include "asterfort/dxqbm.h"
#include "asterfort/dxqloc.h"
#include "asterfort/dxqlocdri1.h"
#include "asterfort/dxqlocdri2.h"
#include "asterfort/dxqlocdri3.h"
#include "asterfort/dxqlocdri4.h"
#include "asterfort/dxqloe.h"
#include "asterfort/dxqloe_NV.h"
#include "asterfort/elrefe_info.h"
#include "asterfort/gquad4.h"
#include "asterfort/jevech.h"
#include "asterfort/jquad4.h"
#include "asterfort/r8inir.h"
#include "asterfort/utbtab.h"
#include "asterfort/utctab.h"
#include "asterfort/utpvgl.h"
#include "blas/dcopy.h"
#include "blas/dscal.h"
    real(kind=8) :: xyzl(3, *), pgl(*), rig(*), ener(*)
    character(len=16) :: option, nomte
!
!     MATRICE DE RIGIDITE DE L'ELEMENT DE PLAQUE DKQ
!     ------------------------------------------------------------------
!     IN  XYZL   : COORDONNEES LOCALES DES QUATRE NOEUDS
!     IN  OPTION : OPTION RIGI_MECA OU EPOT_ELEM
!     IN  PGL    : MATRICE DE PASSAGE GLOBAL/LOCAL
!     OUT RIG    : MATRICE DE RIGIDITE
!     OUT ENER   : TERMES POUR ENER_POT (EPOT_ELEM)
!     ------------------------------------------------------------------
    integer :: ndim, nno, nnos, npg, ipoids, icoopg, ivf, idfdx, idfd2, jgano
    integer :: multic, i, jcoqu, jdepg
    real(kind=8) :: wgt
    real(kind=8) :: df(9)=0.0, dm(9)=0.0, dmf(9)=0.0, dc(4)=0.0, dci(4)=0.0
    real(kind=8) :: df2(9)=0.0, dm2(9)=0.0, dmf2(9)=0.0
    real(kind=8) :: dmc(3, 2)=0.0, dfc(3, 2)=0.0
    real(kind=8) :: bf(3, 12)=0.0, bm(3, 8)=0.0
    real(kind=8) :: xab1(3, 12)=0.0, depl(24)=0.0, caraq4(25)=0.0, jacob(5)=0.0
    real(kind=8) :: qsi=0.0, eta=0.0
    real(kind=8) :: flex(144), memb(64), mefl(96)
    real(kind=8) :: t2iu(4)=0.0, t2ui(4)=0.0, t1ve(9)=0.0
    real(kind=8) :: bsigth(24)=0.0, enerth=0.0, excent=0.0, un, ctor=0.0
    aster_logical :: coupmf=.false., exce=.false., indith=.false.

!
!   LOCAL VARIABLES FOR COEF_RIGI_DRZ

    integer :: j, ii, jj,irot
!    integer :: iishp,jjshp
    integer, parameter :: npgmx=9
    real(kind=8) :: shp(3,4,npgmx), shpr1(3,4,npgmx), shpr2(3,4,npgmx), bb(12,npgmx)
    real(kind=8) :: gshp1(3,4), gshp2(3,4)
    real(kind=8) :: dArea=0.0, gam=0.0, epais=0.0, fact=0.0, gm(3, 4)
    real(kind=8) :: gmemb(4,4), btgmemb(8,4), gmefl(4,12)
!    real(kind=8) :: nm1(8), nm2(8), gm1(4), gm2(4)
    real(kind=8) :: bxb(12,12)

    aster_logical :: dri = .false.


!
    call elrefe_info(fami='RIGI', ndim=ndim, nno=nno, nnos=nnos, npg=npg,&
                     jpoids=ipoids, jcoopg=icoopg, jvf=ivf, jdfde=idfdx, jdfd2=idfd2,&
                     jgano=jgano)
!
    un = 1.0d0
    enerth = 0.0d0

    call jevech('PCACOQU', 'L', jcoqu)
    ctor = zr(jcoqu+3)
    excent = zr(jcoqu+4)
    epais = zr(jcoqu)
    exce = .false.
! COEF_RIGI_DRZ ACTIVE = -1 --> dri = true,  dri =  false sinon
    dri = .false.
    if (ctor .lt. 0.0d0 ) dri = .true.
    if (abs(excent) .gt. un/r8gaem()) exce = .true.
!
!     ----- MISE A ZERO DES MATRICES : FLEX ,MEMB ET MEFL :
    call r8inir(144, 0.d0, flex, 1)
    call r8inir(64, 0.d0, memb, 1)
    call r8inir(96, 0.d0, mefl, 1)
!
!     ----- CALCUL DES MATRICES DE RIGIDITE DU MATERIAU EN FLEXION,
!           MEMBRANE ET CISAILLEMENT INVERSEE --------------------------
    call dxmate('RIGI', df, dm, dmf, dc,&
                dci, dmc, dfc, nno, pgl,&
                multic, coupmf, t2iu, t2ui, t1ve)
!     ----- CALCUL DES GRANDEURS GEOMETRIQUES SUR LE QUADRANGLE --------
    call gquad4(xyzl, caraq4)
!
  if(dri) then
     call r8inir(12*npgmx, 0.d0, shp, 1)
     call r8inir(12*npgmx, 0.d0, shpr1, 1)
     call r8inir(12*npgmx, 0.d0, shpr2, 1)
     call r8inir(12*npgmx, 0.d0, bb, 1)

     dArea = 0.0d0

     call r8inir(12, 0.d0, gshp1, 1)
     call r8inir(12, 0.d0, gshp2, 1)
     call r8inir(12,  0.d0,   gm, 1)
     call r8inir(16,  0.d0,   gmemb, 1)
     call r8inir(32,  0.d0, btgmemb, 1)
     call r8inir(48,  0.d0, gmefl, 1)
     call r8inir(144, 0.d0, bxb, 1)

      epais = zr(jcoqu)
     gam   = abs(ctor)*dm(1)
     do ii = 1, npg
!
!        ----- COORDINATES :
        qsi = zr(icoopg-1+ndim*(ii-1)+1)
        eta = zr(icoopg-1+ndim*(ii-1)+2)
!
!        ----- JACOBIAN AND WEIGHT :
        call jquad4(xyzl, qsi, eta, jacob)
        wgt = zr(ipoids+ii-1)*jacob(1)

!
!        ----- LOOP FOR SHP FUNCTIONS :
!
!        -- ELEMENT AREA :
        dArea = dArea + wgt
!
!        -- COMPUTE LINEAR AND ROTATIONAL SHAPE FUNCTIONS AND DERIVATIVES :
        call dkqshp(qsi, eta, caraq4, jacob, &
                    shp(1,1,ii), shpr1(1,1,ii), shpr2(1,1,ii))

          do j = 1,4
            do i = 1,3
              gshp1(i,j) = gshp1(i,j) + shpr1(i,j,ii)*wgt
              gshp2(i,j) = gshp2(i,j) + shpr2(i,j,ii)*wgt
            end do
          end do
     enddo

     do ii = 1, npg


      do j = 1,4
       do i = 1,3
          shpr1(i,j,ii) = shpr1(i,j,ii) - gshp1(i,j)/dArea
          shpr2(i,j,ii) = shpr2(i,j,ii) - gshp2(i,j)/dArea
       end do
      end do


      do i = 1,4
        j = 3*(i-1)
        bb(1+j,ii) = bb(1+j,ii) - shp(2,i,ii)
        bb(2+j,ii) = bb(2+j,ii) + shp(1,i,ii)
        bb(3+j,ii) = bb(3+j,ii) - 2.d0*shp(3,i,ii)
        bb(3+j,ii) = bb(3+j,ii) - shpr1(2,i,ii) + shpr2(1,i,ii)
      end do
   enddo

  endif
!
    do i = 1, npg

        qsi = zr(icoopg-1+ndim*(i-1)+1)
        eta = zr(icoopg-1+ndim*(i-1)+2)
!        ----- CALCUL DU JACOBIEN SUR LE QUADRANGLE --------------------
        call jquad4(xyzl, qsi, eta, jacob)
        wgt = zr(ipoids+i-1)*jacob(1)
!
!        -- FLEXION :
        call dkqbf(qsi, eta, jacob(2), caraq4, bf)
!        ----- CALCUL DU PRODUIT BFT.DF.BF -----------------------------
        call dcopy(9, df, 1, df2, 1)
        call dscal(9, wgt, df2, 1)
        call utbtab('CUMU', 3, 12, df2, bf,&
                    xab1, flex)
!
!        -- MEMBRANE :
        call dxqbm(qsi, eta, jacob(2), bm)
!        ----- CALCUL DU PRODUIT BMT.DM.BM -----------------------------
        call dcopy(9, dm, 1, dm2, 1)
        call dscal(9, wgt, dm2, 1)
        call utbtab('CUMU', 3, 8, dm2, bm,&
                    xab1, memb)
!
!   compute rotational part of membrane B matrix
!
    if(dri) then
!=====================================================================
! ---  CALCUL DE LA PARTIE MEMBRANE DE LA MATRICE DE MASSE =
! ---  LES TERMES SONT EN NK*NP                                      =
!=====================================================================
!
!        call dkqnim(shp(1,1,i), shpr1(1,1,i), shpr2(1,1,i), &
!                          nm1, nm2, gm1, gm2)

!        do i = 1, 8
!            do j = 1, 8
!                memb(i,j) = memb(i,j) + nm1(i) * nm1(j) * wgt
!                memb(i,j) = memb(i,j) + nm2(i) * nm2(j) * wgt
!            end do
!        end do

!        do iishp = 1, 4
!            do jjshp = 1, 4
!                gmemb(i,j) = gmemb(i,j) + gm1(i) * gm1(j) * wgt
!                gmemb(i,j) = gmemb(i,j) + gm2(i) * gm2(j) * wgt
!            end do
!        end do


!        do iishp = 1, 8
!            do jjshp = 1, 4
!                btgmemb(i,j) = btgmemb(i,j) + nm1(i) * gm1(j) * wgt
!                btgmemb(i,j) = btgmemb(i,j) + nm2(i) * gm2(j) * wgt
!            end do
!        end do
!        -- MEMBRANE (DRILLING PART) Gm:
        call dxqgm(shpr1(1,1,i), shpr2(1,1,i), gm)

!        ----- CALCUL DU PRODUIT GMT.DM.GM
        call dcopy(9, dm, 1, dm2, 1)
        call dscal(9, wgt, dm2, 1)
        call utbtab('CUMU', 3, 4, dm2, gm,&
                    xab1, gmemb)
!        ----- CALCUL DU PRODUIT BMT.DM.GM
        call dcopy(9, dm, 1, dm2, 1)
        call dscal(9, wgt, dm2, 1)
        call utctab('CUMU', 3, 4, 8, dm2,&
                    gm, bm, xab1, btgmemb)

!        ----- CALCUL DU PRODUIT gam/Omega*b(x)b

        do irot = 1, 12
          fact = wgt*gam/dArea * bb(irot,i)
          do jj = 1, 12
            bxb(irot,jj) = bxb(irot,jj) + fact * bb(jj,i)
          end do
        end do


  endif

!
!
!        -- COUPLAGE :
        if (coupmf .or. exce) then
          if(dri) then
!           ----- CALCUL DU PRODUIT BMT.DMF.BF -------------------------
            call dcopy(9, dmf, 1, dmf2, 1)
            call dscal(9, wgt, dmf2, 1)
            call utctab('CUMU', 3, 12, 8, dmf2,&
                        bf, bm, xab1, mefl)
!
!   compute product Gmt.Dmf.Bf
!           ----- CALCUL DU PRODUIT GMT.DMF.BF -------------------------
            call dcopy(9, dmf, 1, dmf2, 1)
            call dscal(9, wgt, dmf2, 1)
            call utctab('CUMU', 3, 12, 4, dmf2,&
                        bf, gm, xab1, gmefl)
          else if (.not. dri) then
!           ----- CALCUL DU PRODUIT BMT.DMF.BF -------------------------
            call dcopy(9, dmf, 1, dmf2, 1)
            call dscal(9, wgt, dmf2, 1)
            call utctab('CUMU', 3, 12, 8, dmf2,&
                        bf, bm, xab1, mefl)
          else
             ASSERT(.false.)

          endif
        endif
    end do
!
    if (option .eq. 'RIGI_MECA') then
        if(.not. dri) then
          call dxqloc(flex, memb, mefl, ctor, rig)
        elseif (dri) then
!     Add rotational to stiffness matrix
!
          ctor=0.d0
          call dxqloc(flex, memb, mefl, ctor, rig)
         call dxqlocdri1(gmemb, rig)
         call dxqlocdri2(btgmemb, rig)
         call dxqlocdri3(gmefl, rig)
         call dxqlocdri4(bxb, rig)
         else
          ASSERT(.false.)
        endif
!
!

    else if (option.eq.'EPOT_ELEM') then
        call jevech('PDEPLAR', 'L', jdepg)
        call utpvgl(4, 6, pgl, zr(jdepg), depl)
       if(.not. dri) then
        call dxqloe(flex, memb, mefl, ctor, coupmf,&
                    depl, ener)
       elseif  (dri) then
!        call dxqloe(flex, memb, mefl, abs(ctor), coupmf,&
!                    depl, ener)
  !     Add rotational to stiffness matrix

          ctor=0.d0
          call dxqloc(flex, memb, mefl, ctor, rig)
         call dxqlocdri1(gmemb, rig)
         call dxqlocdri2(btgmemb, rig)
         call dxqlocdri3(gmefl, rig)
         call dxqlocdri4(bxb, rig)
       call dxqloe_NV(coupmf,rig,depl, ener)
       else
         ASSERT(.false.)
       endif
        call bsthpl(nomte, bsigth, indith)
        if (indith) then
            do i = 1, 24
                enerth = enerth + depl(i)*bsigth(i)
            end do
            ener(1) = ener(1) - enerth
        endif
    endif
!
end subroutine
Vsa125 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.09.2018, 14:56
#137
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 7,268


Цитата:
Сообщение от Vsa125 Посмотреть сообщение
Вот например матрица жесткости плиты DKQ "codeaster-src
Всё это прекрасно, только внутренние процедуры типа jevech(), dxqloc() и т.д. пустые.
__________________
Сон разума рождает чудовищ. (испанская пословица)
Бахил вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Code-Aster для строительства. Материалы для освоения и развития

РЕВЕРС. Автоматическая пакетная печать множества рамок (форматов) из пространства модели и листов
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Освоение тел Солнечной системы: Техника, технологии, ресурсы. Солидворкер Разное 2090 13.10.2018 07:07
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 106 25.10.2015 19:00
Аттестация в Минрегионе по негосударственной экспертизе Людмила Охр Прочее. Архитектура и строительство 350 14.02.2015 17:50
Где написано, что Подрядчик обязан передавать исполнительную документацию ? drill_man Разное 164 15.01.2013 15:30
Временная защита неэксплутаруемого здания от осадков ing-e Прочее. Архитектура и строительство 16 06.12.2011 00:11

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||