شرحی بر کتاب «کامل‌ترین مرجع کاربردی OpenSees»

کتاب «کامل‌ترین مرجع کاربردی OpenSees» در نمایشگاه کتاب امسال «۱۳۹۶» منتشر شد. طبق گفته‌ی مولف، این کتاب اولین کتاب راهنمای #OpenSees است که به صورت تالیف، چاپ و نشر می‌شود. نویسنده‌ی کتاب، جناب آقای مهندس سید محمد جواد فروغی مقدم از مدرسان با سابقه و مسلط #OpenSees در کشور هستند. دو سال قبل از یکی از دوره‌های ایشان بهره‌مند شده‌ام که لازم می‌دانم همین‌جا از ایشان تشکر و قدردانی کنم.
فرصت حضور در نمایشگاه کتاب را نداشتم. اما چند روز قبل کتاب را از یکی از کتاب فروشی‌های شیراز تهیه کردم. علاقه‌ام به #OpenSees، همین طور شناخت قبلی‌ام از نویسنده‌ی کتاب، سبب شدند تا با اشتیاق بیشتر، کتاب را مطالعه کنم. متن نسبتاً روان، ارائه‌ی مثالهای متعدد همراه با توضیحاتی هرچند مختصر در خصوص آنها، تجربه‌ی تازه‌ای را به خواننده در خصوص نرم‌افزار #OpenSees منتقل می‌کند. در مجموع، کتاب را کتابی ارزشمند یافتم و تصمیم گرفتم تا دیدگاه‌های خودم را در خصوص کتاب، با سایر علاقمند به اشتراک بگذارم.
مواردی هم در خصوص نحوه‌ی نگارش و مشکلات نگارشی/ویرایشی مشاهده کردم که آنها را در غالب یک پیام شخصی، به نویسنده‌ی محترم کتاب ارسال کردم. امید که در تجدید چاپ‌های آتی مورد استفاده‌ی نویسنده و ناشر کتاب قرار گرفته و برای آنها سودمند باشد.
 

طرح جلد

در خصوص راهنما-کاربرد #OpenSees تا قبل از این، حداقل ۲ مجلد دیگر را مطالعه کرده‌ بودم. معتقدم کتاب مورد بحث با آنچه که پیشتر در خصوص راهنما، آموزش یا کاربرد #OpenSees منتشر شده، تفاوت‌های قابل ملاحظه‌ای با یکدیگر دارند. اما در خصوص طرح جلد، به نظر می‌رسد وسواس لازم به کار نرفته است. هر سه کتاب در طرح جلد خود حداقل یک تصویر کاملاً مشابه و یکسان دارند. مشخص است که این تصاویر از اینترنت تهیه شده و در بخشی از طراحی جلد استفاده شده است. البته فقط در بخشی از تصویر جلد. چون این کتاب طبق گفته‌ی نویسنده‌ی محترم آن تالیف است و نه ترجمه - و صحت این ادعا با مطالعه‌ی کتاب به خواننده اثبات می‌شود - شاید مناسب‌تر این بود که تمام تصاویر جلد کتاب هم کاملاً از نو طراحی می‌شدند.

قالب و شکل ظاهری کتاب

کتاب توسط انتشارات نگارنده‌ی دانش  منتشر شده است. تزیین، صفحه آرایی، جنس کاغذ، اندازه‌ و شکل قلم و فاصله‌ی خطوط به شکل مناسب و قابل قبولی انجام شده و خوانایی کتاب و متن در حد مناسبی‌ست. هر چند که به نظرم کیفیت تصاویر استفاده شده چندان چنگی به دل نمی‌زد. کتاب در قطع وزیری و با ۵۷۶ صفحه و در تیراژ ۱۰۰۰ نسخه و برای نخستین مرتبه در بهار ۱۳۹۶ منتشر و چاپ شده است. در قسمت مشخصات و شناسنامه‌ی کتاب، همانطور که مشخص است، جای خالی ویراستار به چشم می‌خورد. به این معنا که یا ویراستاری کتاب را خود نویسنده بر عهده گرفته! و یا بنا به صلاحدید، از ویراستار استفاده نشده است. شاید علت برخی مشکلات تحریری، نگارشی و دستوری کتاب هم از همینجا نشأت گرفته باشد.
قیمت پشت جلد کتاب هم ۴۰۰۰۰ تومان است. البته اگر از وب سایت ناشر خرید کنید ۴۰۰۰ تومان تخفیف دریافت می‌کنید. علی‌رغم قیمت، متاسفانه در کشورمان، نگارش کتاب هیچگونه جذابیت مالی برای نویسنده‌ای که حداقل ۱۰-۱۵ سال از عمر خود را صرف تحقیق و مطالعه کرده است، ندارد. حتی اگر ناشر پس از دوره‌ی احتیاط مثلاً ۶ ماهه، درصد حق التحریر نویسنده را در اقساطی! که مشخص شده و به توافق رسیده، پرداخت کند، باور کنید آخرین کسی که از چاپ و نشر و فروش کتاب منفعت مالی می‌برد، نویسنده‌ی کتاب است. نگارش کتاب تنها عشق است و بس. نکته‌ی دیگر اینکه نرم‌افزار #OpenSees نرم‌افزاریست که بخش بسیار محدودی از قشر دانشگاهی در حوزه‌ی مهندسی عمران - با گرایشهای سازه، زلزله و یا خاک و پی - مخاطب آن هستند. علاوه، فی النفسه کارکردن با نرم‌افزار چندان دلچسب عده‌ای از همان جامعه‌ی هدف هم نیست - به دلیل ذات و نحوه‌ی استفاده‌ی آن - که همین امر سبب شده برخلاف قدرت فوق العاده، مخاطب چندانی نداشته باشد. در همین احوال، نگارش کتابی با موضوع #OpenSees خودبخود می‌تواند چالش‌های خاص خود را داشته باشد. بدین معنا که نویسنده می‌بایست از تسلط و توانایی بالایی برخوردار باشد که خوشبختانه، در خصوص این کتاب، چنین است. به هر روی شخصا امیدوارم از این کتاب و سایر کتابهای شاخص فنی و مهندسی استقبال شود تا انگیزه‌ی ناشران و متخصصان برای چاپهای بعدی و نگارش کتاب‌های غنی بیشتر شود. 

عنوان کتاب

عنوان کتاب «کامل‌ترین مرجع کاربردی OpenSEES» انتخاب شده است. صفت تفضیلی کامل‌ترین  مشخصاً نسبی‌ست. هرگاه فعلی یا موقعیتی یا شرایطی با صفت برتر کامل‌تر توصیف شود، به معنای این است که انجام آن فعل یا آن موقعیت و شرایط، نسبت به افعال انجام شده در قبل یا موقعیت و شرایط پیش از آن، به شکل کامل‌تری انجام شده است. کامل‌ترین در عنوان کتاب، احتمالاً به این معناست که خواننده‌ی محترم، این کتاب نسبت به کتابهایی که پیشتر در خصوص موضوع مورد بحث منتشر شده‌اند، کامل‌تر است. 
اما قطعاً کامل‌ترین به صورت مطلق نیست. چرا؟ به فهرست کتاب که نگاه کنید، خواهید دید که هیچ اثری از مباحث مربوط به ژئوتکنیک در آن مطرح نشده است. کما اینکه نویسنده‌ی محترم کتاب هم در صفحه‌ی شخصی خود یادآوری کرده‌اند که این کتاب شامل مباحث مربوط به خاک و پی نشده و این موارد، در جلد دوم خواهند آمد. لذا قید کامل‌ترین به نظرم در اینجا موضوعیت پیدا نمی‌کند. البته نه  روی جلد، نه در مقدمه‌ی ناشر و نه در مقدمه‌ی مولف و نه در هیچ کجای کتاب، به هیچ عنوان اشاره‌ای به این مطلب نشده که این جلد اول است و برنامه‌ای برای چاپ جلد دوم هم وجود دارد. به علاوه، برخی مباحث شاخص و مهم هم در این کتاب، مغفول مانده اند. لذا به هیچ وجه استفاده از صفت برتر کامل‌ترین جایز نیست.
موضوع بعدی، استفاده از واژگان مرجع و کاربردی است. اجازه بدهید مثالی بیاورم. به کتابهای مرجع نگاه کنید! مثلاً مرجع ++C یا مثلاً مرجع دستورات #AutoCAD. و یا حتی کتابهای آیین‌نامه، مانند #ASCE. خصوصیت این کتابها این است که همه‌ی آنها قوانین، مقررات، نحو زبان و دستورات موضوعی خاص را بیان کرده‌اند. کتاب مرجع زبان ++C مثلاً توضیح داده که نگارش یک متد شرطی به چه نحو انجام می‌شود. یا مرجع دستورات #AutoCAD به عنوان نمونه، توضیح داده که برای ترسیم یک کمان در فضای سه بعدی، از چه دستوری و با چه پارامترهایی و به چه ترتیبی باید استفاده شود. یا مثلاً در آیین‌نامه‌ی #ASCE توضیح داده شده که نحوه‌ی محاسبه‌ی زمان تناوب یک سازه به چه صورت انجام شده و مبانی محاسباتی آن چیست. اما هرگز به صورت موردی چیزی را شرح نداده‌اند. این از خصوصیات کتابهای فقط مرجع است. در مقابل، کتابهای کاربردی، کتابهایی هستند که کاربرد علمی خاص یا نرم‌افزاری ویژه را، صرفاً در خصوص موضوع خاص، همراه با مثالهای متعدد و شرایط متفاوت،‌ به بحث گذاشته و چگونگی استفاده از دستورات توضیح داده شده در کتابهای مرجع را بیان می‌کنند. مثلاً کتاب طراحی سازه‌های فولادی، نحوه‌ی استفاده از ضوابط آیین نامه‌ی فولاد را در طراحی اعضای فولادی شرح می‌دهد و یا کتاب «پروژه‌های کاربردی در SAFE 2014» نوشته‌ی استاد حسن باجی، کتابی‌ست که به صورت کاربردی، به تشریح استفاده از نرم‌افزار SAFE2014 آن هم به صورت پروژه محور و در قالب ارائه‌ی مثالهای متعدد پرداخته است. با این توضیح، وقتی کتابی، هر دو واژه‌ی مرجع و کاربردی را در عنوان خود به همراه دارد، خواننده انتظار هر دو رویکرد را همزمان از کتاب دارد.

نگاه کلی

کتاب در فصل‌های دوم و سوم، تلاش می‌کند تا به نحو مناسبی مرجع دستورات زبان برنامه‌نویسی Tcl و دستورات مدلسازی را تشریح کند. در خصوص فصل دوم که به معرفی تعداد بسیار اندکی از دستورات زبان برنامه نویسی Tcl پرداخته، علاوه بر نحو زبان، مثالهای مناسبی هم در انتهای هر دستور شرح داده شده که به فهم بهتر مطلب کمک بسیاری می‌کند. تنها نکته‌ی قابل ذکر اینکه، تعداد دستورات و فرمانهایی که در این فصل تشریح شده، بسیار اندک هستند. معتقدم این امکان و قابلیت وجود داشت تا دستورات بیشتری از زبان تشریح شده یا لااقل مرجعی برای مطالعه‌ی بیشتر به خواننده معرفی می‌شد.
اما فصل سوم،‌ به تشریح دستورات مدل‌سازی پرداخته شده است. این فصل، یکی از فصول بسیار مفصل کتاب است. نویسنده در ۲۲۰ صفحه تلاش کرده تا تمام دستورات مدلسازی را تشریح کند. به جد می‌توان ادعا کرد تقریباً دستوری وجود ندارد که از چشم نویسنده به دور مانده باشد. تمام دستورات به طور کامل تشریح و توضیح داده شده، نگارش دستورات، شرح پارامترهای اجباری و اختیاری به تفصیل بیان شده است. تنها به ذکر سه مورد بسنده می‌کنم:
الف) در تمام کتابهای معتبری که به نوعی مربوط به برنامه‌نویسی می‌شوند، از قلم مخصوصی برای فرمت کردن بلوک دستورات استفاده می‌شود. عموماً قلم Consolas. در کتاب از قلم Times New Roman بهره گرفته شده است.
ب) تصاویر و نمودارهای استفاده شده در این فصل غالباً ترسیمی نبوده و در پاره‌ای معدود از موارد از کیفیت نازلی هم برخوردار هستند. مانند شکل ۴۹.۳ صفحه‌ی ۹۳. این تصویر در این آدرس  و با همان کیفیت موجود در کتاب در دسترس است. تصاویر، متناسب با مورد، از اینترنت دریافت شده و با قدری تغییر اندازه، در متن کتاب گنجانده شده‌اند. به عنوان یک نمونه‌ی موفق در زمینه‌ی ترسیم اشکال و نمودارها، به اثری ارزشمند از استاد دکتر داود مستوفی‌نژاد اشاره می‌کنم. در دوره‌ی دوجلدی طراحی سازه‌های بتن مسلح ایشان، که از قضا این سری هم مانند کتاب موضوع بحث، تالیف است، تمام اشکال و نمودارها، با دقت فراوان و به صورت بکر، ترسیم شده‌اند.
به نظر می‌رسد در خصوص انتخاب تصاویر و نمودارها، وسواس و دقت نظر مورد نیاز به کار نرفته است.
ج) وقتی که در عنوان کتاب از واژگان مرجع و کاربردی استفاده شده، صرف نظر از اینکه در یک فصل به طور اخص به شرح دستورات و فرامین پرداخته شود، بی هیچ مثالی، و خواننده را به مثالهای قسمت کاربردی ارجاع دهد، به نظر قدری از رسالت اصلی کتاب منحرف است. و البته نویسنده‌ی محترم هم به احتمال زیاد با این دیدگاه هم نظر هستند. زیرا در فصل دوم که به معرفی برخی دستورات مهم زبان Tcl پرداخته‌اند، همراه با هر کدام، مثالی هم ذکر کرده‌اند. اما همین رویکرد در فصل سوم، جز در پاره‌ای اندک از موارد، به دست فراموشی سپرده شده است. مثلاً در فصل دوم، در خصوص دستور foreach و یا switch مثالی ذکر شده، اما در فصل سوم و برای دستور پر کاربردی مانند section Fiber هیچ مثالی بیان نشده است.
این رویکرد، که ابتدا به صورت جامع، نسبت به تعریف کلی دستورات پرداخته شود و پس از آن، نحوه‌ی استفاده از دستورات در قالب مثال بیان شود، رویکردی‌ست که به اعتقاد من شیوه‌ی مناسبی نیست. اما متاسفانه این شیوه، در بسیاری از کتابهای تازه منتشر شده، بسیار مرسوم شده است. به عنوان مثال نقض و ذکر یک نمونه‌ی موفق در خصوص کتاب‌های مرجع، به اثر ارزشمند استاد مهندس بهروز راد با عنوان «مرجع کامل ASP.NET MVC» که توسط انتشارات پندار پارس منتشر شده، اشاره می‌کنم. کتاب، همانگونه که از نامش پیداست، کتاب مرجع است. اما با اینحال، در خلال هر بحثی، مثالهای مرتبط با آن هم آورده شده و دقیقاً در پایان هر موضوع، خواننده به طور کامل درگیر مفاهیم گفته شده می‌شود.
ناگفته نماند که بیان صرفاً تئوری گونه‌ی مفاهیم، صبر و حوصله‌ی مضاعف خواننده را می‌طلب. ضمن ارائه‌ی مثال در هر بخش، کشش متن و موضوع بیشتر خواهد شد.

مقدمه‌ی نویسنده

در ابتدای کتاب و در پیشگفتار، به رسم هر کتاب، نویسنده مقدمه‌ی کوتاهی بر کتاب نگاشته‌اند. در بخشی از این مقدمه آمده است:
[...] میراث خود داشته و به نحو احسن و ساده‌ترین شکل ممکن با مخاطب ارتباط برقرار نماید.
به نظر می‌رسد ذکر عبارت «به نحو احسن» از قلم نویسنده، آنهم در ابتدای کتاب، چندان مناسب نباشد. چرا که تصمیم‌گیری در خصوص توان ارتباط با مخاطب بر عهده‌ی همان «مخاطب» است و نه نویسنده‌ی محترم کتاب. این خواننده‌ی کتاب است که پس از مطالعه‌ی آن نتیجه‌گیری می‌کند که آیا ارتباط نویسنده/خواننده برقرار شده است یا خیر و اگر بله، آنگاه هم او می‌تواند کیفیت آن ارتباط را بر حسب مورد ارزش‌گذاری کند. ای بسا به نتیجه‌ی «به نحو احسن» هم دست یابد.

فصل اول: معرفی ساختار OpenSees

در پاورقی اولین صفحه‌ی فصل اول، نویسنده‌ی محترم آورده است:
[...] در این کتاب نام نرم‌افزار به صورت OpenSEES نگارش می‌شود. 
شاید در تمام طول کتاب، این تنها نکته‌ای بود که با نظر نویسنده‌ی محترم مخالف هستم. این نرم‌افزار ساخته‌ی دست گروهی از متخصصان و مهندسان دانشگاه برکلی  است. آنها، به هر دلیلی تصمیم گرفته اند که نام نرم‌افزار خود را OpenSees بگذارند. اینکه نظر من و شما و سایرین در خصوص نام این نرم‌افزار چیست، نه اهمیتی دارد و نه سندیت. ما تنها می‌توانیم به عنوان استفاده کننده و یا در حالتی بهتر، توسعه‌دهنده، از نرم‌افزار بهره برده و قدردان زحمات خالقان آن باشیم. این که بنا به میل و سلیقه‌ی شخصی خود، نام نرم‌افزار یا نگارش و املای آنرا تغییر دهیم،‌ مطلقاً از رسم و اصول حفظ امانت به دور است. نام این نرم‌افزار و شیوه‌ی نگارش آن OpenSees است و نه OpenSEES. چه من و شما بپسندیم، چه جز آن.
در بخش ۲.۱ تلاش شده تا توضیحی در خصوص ساختار نرم‌افزار داده شود. متاسفانه در این بخش، آن هم به شیوه‌ای بسیار مختصر، تنها اشاره‌ای کوتاه به قابلیت شئ‌گرایی نرم‌افزار شده آنهم غیر مستقیم. در واقع توضیح الگوی برنامه‌نویسی شئ‌گراست که توضیحی عمومی بوده و ارتباطی با برنامه‌نویسی Tcl در #OpenSees ندارد. از این پس تا انتهای کتاب، نویسنده‌ی محترم نه نامی از شئ‌گرایی برده‌اند، تا قابلیت‌های بی‌نظیر آنرا برای خواننده آشکار کنند و نه هرگز دیگر بدان اشاره کرده‌اند. و مهم‌تر از همه، خود ایشان هم هرگز از توانایی شئ‌گرایی برنامه، نه تنها کوچکترین حظی نبرده‌اند، بلکه آنچه را هم که به عنوان تعریف،‌در بخش ۲.۱ ارائه داده‌اند، مطلق فراموش کرده‌اند. 
از مواردی که می‌توانست قدری مفاهیم شئ‌گرایی را توضیح دهد، بخش مربوط به proc در فصل دوم بود که کاملاً مهجور مانده است.
در بخش ۷.۱ روش نصب #OpenSees شرح داده شده است. این بخش، خواننده را برای دریافت فایل نصب کننده‌ی برنامه به دو آدرس ارجاع می‌دهد. یکی وب سایت ناشر و دیگری وب سایت نویسنده. در وب سایت ناشر که هیچ اثری (تا لحظه‌ی نگارش این مطلب) از وجود چنین فایلی نیست. اما در وب سایت نویسنده، شما باید با اعلام نام و ایمیل خود لینک دریافت فایل مورد نظر را دریافت کنید. با انجام این کار، تنها چیزی که به شما ارسال می‌شود، ایمیلی‌ست حاوی تصویری از طرح جلد کتاب. مناسب است پیش از انتشار، نسبت به رفع چنین نواقصی اقدام شود. (مورد نبود ویراستار)

فصل دوم و سوم: دستورات کاربردی و مدل‌سازی

در خصوص این دو فصل پیشتر صحبت کردم. تنها نکته‌ای که علاقمندم به جهت تاکید، دوباره آنرا مطرح کنم، نبود مثال مشخص برای هر بخش از دستورات مدل‌سازی است. نویسنده ابتدا در فصل سوم - بگویید قسمت مرجع کتاب - جزییات دستورات را به طور مشروح بیان کرده‌اند و سپس در قسمت مثالها - بگویید قسمت کاربردی کتاب - هر جا که لازم بوده با ذکر (ر.ک ) به دستور مورد نظر در قسمت مرجع کتاب اشاره کرده‌اند. هرچند که برای یک کتاب مرجع کاربردی این لازم است، اما به نظر ناکافی‌ست. شایسته‌تر این بود که در همان بخش مرجع، صرفاً از هر بخش، برای حالتهای گوناگون، مثالی مختصر و متناسب با همان بخش ذکر می‌شد. مثلاً در بخش geomTransform به راحتی می‌شد مثالهای بیشتری را برای همین دستور ذکر کرد تا به درک هرچه بهتر مطلب کمک شود. بدین‌گونه بود که این امکان وجود می‌داشت تا به راحتی بتوان مدعی ارتباط با خواننده به نحو احسن شد.
به جز این مورد، تقریباً، ای بسا تحقیقاً، تمام دستورات به طور کامل، همانگونه که قبلاً هم اشاره کردم، شرح و بسط داده شده‌اند. فصل سوم خواننده را از هر مرجع دیگری، به کمال بی نیاز می‌کند.

فصول ۴ تا ۱۲: قسمت کاربردی کتاب

از فصل ۴ تا پایان فصل ۱۲، مثالهای متعدد و متنوعی، از ساده تا کمی پیچیده شرح داده شده است. در این چند فصل، مثالها به صورت گام به گام تشریح شده‌ و به جهت صحت سنجی، با نتایج حاصل از تحلیل در یک نرم‌افزار دیگر هم مقایسه شده‌اند. نتایج مقایسه بعضاً به صورت مطلق عددی بیان شده است. شاید بهتر این بود که مقایسه‌ی نتایج به صورت نسبی و به صورت درصد بیان می‌شد.
نکته‌ای که به نظر می‌رسد باید به آن اشاره شود این است که در مثالهای کاربردی ارائه شده، نویسنده محترم در حد اشاره و گذر، بسنده کرده‌اند و مفاهیم از پیش گفته را عمیقاً مورد بررسی قرار نداده‌اند. مثال زیر را در نظر بگیرید:
wipeAnalysis;
contraints Transformation;
numberer RCM;
system SpaeseGeneral;
test EnergyIncr 1e-7 25 0;
algorithm ModifiedNewton;
integrator LoadControl 1;
analysis Static;
analyze 1;

puts "End of Static Analysis"
در فصل سوم، توضیح داده شده که دستور Numberer چیست و انواع آن کدام است. در این مثال، از نوع RCM بهره گرفته شده است. اما نویسنده‌ی محترم به هیچ عنوان ذکر نکرده‌اند که اگر به جای نوع RCM از نوع AMD یا Plain استفاده شود، نتایج تحلیل به چه میزان و در چه قسمت دستخوش تغییر می‌شوند؟ و یا اینکه از هر کدام از این انواع، کی و کجا باید استفاده شود. اعداد 1e-7 و 25 بر چه مبنایی انتخاب شده‌اند؟ تغییر میزان تلرانس همگرایی، چگونه و به چی میزان در نتایج تحلیل تاثیر گذار است؟ و همین طور است برای سایر دستورات.
یکی از نکات مهم و البته کاربردی که می‌توانست به نقطه‌ی قوت آن بخش از کتاب که به کاربردی بودن تناظر دارد، تبدیل شود، لینک #Matlab به #OpenSees بود که بسیار مورد بی مهری واقع شده و به سادگی و تنها با ذکر یک مثال و بی آنکه مورد بررسی کامل قرار بگیرد، از آن عبور شده است.
جای خالی مثالی از یک قاب مهارشده‌ی مفصلی و نحوه‌ی مدلسازی اتصالات مفصلی و همین‌طور اتصالات مهاربندها - Gusset Plates - به شدت محسوس است. در این خصوص، حتی یک مثال هم مشاهده نمی‌شود. تحلیل دینامیکی افزایشی که اساساً مورد اشاره هم واقع نشده است.
در اینجاست که ایده‌ی استفاده از صفت کامل‌ترین در نام کتاب، بر روح خواننده اثر می‌کند. چرا مواردی را که به چند مورد آن اشاره شد، در کتاب بیان نکرده‌اند؟ بدلیل چنین مواردیست که معتقدم استفاده از واژه‌ی «کامل‌ترین» در عنوان کتاب محلی از اعراب نداشته است. اگر قرار بر انتشار مجلدهای دیگری هم بوده، چرا در هیچ کجای کتاب به این مورد اشاره‌ای نشده است؟
اما ببینیم نویسنده‌ی محترم در طول ۹ فصل انتهایی کتاب، چه مواردی را پوشش داده‌اند؟
آنچه مسلم است اینکه ۹ فصل آخر، در واقع به نوعی عصاره‌ی کل کتاب هستند. به اعتقاد من، علی‌رغم مواردی که در خصوص این فصول پیشتر بیان کردم، شاید بتوان اوج کمال کتاب را در همین بخش مشاهده کرد.
در فصل ۴، مثالی بسیار ساده از نحوه‌ی مدلسازی یک خرپای دو بعدی و پس از آن یک خرپای سه بعدی مطرح شده است. این مثال، به شکلی آرام و ساده، خواننده‌ را وارد دنیای #OpenSees می‌کند. خصوصاً اگر قبلاً تجربه‌ی کار با نرم‌افزار را نداشته‌اید، فصل ۴ دقیقاً همان نقطه‌ای است که باید از آنجا آغاز کنید.
در فصل ۵، یک قاب خمشی دوبعدی فولادی مورد بحث و بررسی قرار گرفته است. پس از آن، یک قاب خمشی دو بعدی فولادی چند دهانه - چند طبقه و بار دیگر، یک قاب خمشی دو بعدی بتنی چند دهانه - چند طبقه تجزیه و تحلیل شده است. تکنیک‌های مدل‌سازی نسبتا متفاوتی برای دو مثال آخر به کار گرفته شده که می‌تواند به درک بهتری از توانایی‌های مدل‌سازی در #OpenSees کمک کند. به نظر می‌رسد این امکان وجود داشت تا از همین‌جا، مفاهیم شئ‌گرایی را هم به تکنینک‌های مدل‌سازی اضافه نمود.
در فصل ۶، دو مثال از نحوه‌ی مدل‌سازی و تحلیل قاب‌های سه بعدی مطرح شده است. یکی فولادی و دیگری بتنی. قاب فولادی این مثال هم همچنان خمشی بوده که در یک جهت از مهاربندهای V وارونه -inverse V - هم استفاده شده است. در نهایت سازه با روش تاریخچه‌ی زمانی تحلیل شده است. این مثال، بی‌ هیچ تذکر و یادآوری بخصوصی به کاربر، خیلی ملایم از یکی از توانایی‌های شئ‌گرایی استفاده کرده، اما این مطلب به خواننده گوشزد نشده است. دیگر اینکه، برای پوشش تحلیل و یا مدل‌سازی پارامتری، به سادگی می‌شد از چند نوع مصالح مختلف و یا نوع المانهای متفاوت به صورت پارامتر استفاده کرد و نتایج استفاده از هر کدام را به بحث گذاشت. مثال دوم این فصل، به مدل‌سازی و تحلیل یک قاب سه بعدی بتنی همراه با دیوار برشی بتن مسلح در یک جهت پرداخته است. تکنیک مدل‌سازی دیواربرشی به عنوان نقطه‌ی قوت این مثال برای خواننده از جذابیت خاصی برخوردار است. تنها به ذکر این مورد اکتفا می‌کنم که مفاهیم این مثال باید تنها به عنوان تکنیک‌های مدل‌سازی در #OpenSees در نظر گرفته شوند. طرح این پرسش که آیا تیر دورن دیوار باید مدل شود یا نه، و یا اینکه سختی آن به چه صورت لحاظ شود، تنها به نظر طراح بستگی دارد. این مثال صرفاً کوشش کرده تا نکات و ترفندهای مدل‌سازی را به خواننده و کاربر برنامه آموزش دهد.
فصل ۷، به مدل‌سازی یک سیستم جرم/فنر اختصاص یافته است. مثالی کاربردی از نحوه‌ی تحلیل برخورد در یک سیستم تک درجه آزادی.
فصل ۸، به تحلیل تیر برای ترسیم خط تاثیر پرداخته است. مثالهای این فصل، برای کسانی که می‌خواهند از نرم‌افزار برای مقاصد تحلیل پل و عرشه‌ی آن استفاده کنند، بسیار مناسب است. به علاوه، قابلیت تغییر در مدل ایجاد شده هم در این فصل به خوبی نمایش داده شده است. 
فصل ۹، به تحلیل یک تیر یک سر گیردار پرداخته که تحت اثر زوایای مختلف نسبت به محور طولی تیر، تحلیل می‌شود. این نوع از تحلیل، به خواننده در فهم معرفی انتقال هندسی مقاطع در مدل‌های سه بعدی کمک می‌کند (برگرفته از متن کتاب). به اعتقاد من، این مثال می‌توانست بسیار جذاب‌تر تدوین شود. نویسنده‌ی محترم، بنا داشته تا تیر را تحت زوایای مختلف دوران داده و نمودار ظرفیت آن را برای حالت‌ها و زوایای مختلف ترسیم نماید. همین کار را هم انجام داده‌اند. اما مدل تحلیلی که ایشان در کتاب مثال آورده‌اند، فقط تحت یک زاویه (۶۰ درجه) تحلیل شده، سپس در بخش ۱۱.۲.۹ توضیح داده‌اند که «تحلیل فوق را برای زوایای ۰، ۱۵، ۳۰، ۴۵ و ۶۰ درجه انجام می‌دهیم». آیا بهتر نبود همین کار به‌صورت پارامتری و تحت زوایای دلخواه و با استفاده از حلقه‌ی for و یا foreach انجام می‌شد تا هم نیاز به تغییر زاویه و انجام تحلیل مجدد توسط کاربر نباشد و مهم‌تر اینکه خواننده با قابلیت تحلیل‌های پیاپی و پارامتری هم آشنا می‌شد؟ تصور کنید که قرار بود این تحلیل برای تعداد زیادی زاویه و یا سخت‌تر، برای تعداد زیادی متغیر انجام می‌گرفت. قطعاً تغییر مقادیر متعدد پارامترها پس از هر تحلیل، منطقی به نظر نمی‌رسد.
foreach Angle { 0 15 30 45 60 75 90 } {
    # do other stuff
}
یا مثلاً:
for { set angle 0 } { $angle <= 90 } { incr angle 15 } {
    # rest of model
}
مثال بعدی این فصل هم به چگونگی تحلیل یک تیر به جهت ترسیم نمودار لنگر-انحنا برای آن اختصاص یافته است. این مثال هم باید برای نیروهای ۱۰۰، ۲۵۰، ۵۰۰ و ۷۰۰ کیلونیوتن و برای هر نیرو به طور مجزا، تحلیل شود. این مثال هم می‌توانست مانند مثال قبل، با استفاده از حلقه، برای نیروهای متفاوت، و فقط با یک مرتبه اجرای مدل، تحلیل شود.
فصل ۱۰، یک قاب ساده‌ی ۳بعدی را به روش تاریخچه‌ی زمانی تحلیل می‌کند. نکته‌ی جالب این که ایجاد مدل کاملاً پارامتری انجام شده است. یعنی فواصل قابها و ارتفاع طبقات همه به صورت متغیر تعریف شده‌اند. لذا کاربر می‌تواند با تغییر در مقادیر، مدلهای مختلفی را تحلیل کند. مثال دوم این فصل، نحوه‌ی ترسیم طیف پاسخ یک مدل ساده را با استفاده از تکنیک اتصال #OpenSees با #Matlab بیان کرده است. شایسته‌تر بود این مثال با جزییات بیشتری مورد بحث قرار داده شود. در نهایت، مثال آخر این فصل به تحریک چندتکیه‌گاهی یک قاب دوبعدی ساده اختصاص داده شده است.
فصل ۱۱، به تشریح چگونگی تحلیل یک صفحه پرداخته و در انتها، شبیه سازی نشست تکیه‌گاهی را توضیح داده است. مدل‌سازی و تحلیل صفحه در این فصل، از مثال‌های قابل توجه و کاربردی بوده و نیاز به توجه ویژه‌ی خواننده دارد. این مثال توضیحات بیشتری را از جانب نویسنده می‌طلبید.
اما فصل آخر، فصل ۱۲، از فصول بسیار جالب، جذاب و کاربردی کتاب است (و فصل مورد علاقه‌ی من). این فصل به طور ویژه، تحلیل حرارتی را مبنای کار خود قرار داده است. نویسنده، تحلیل حرارتی را در قالب مثالهای متعدد، تشریح کرده است. نکته‌ی بسیار حائز اهمیت این فصل، مدل‌سازی تیر مختلط فولاد/بتن است که با دو شیوه‌ی متفاوت توضیح داده شده است. مطالعه‌ی این فصل به طور ویژه اکیداً توصیه می‌شود. تنها نکته‌ای که مایل به بیان آن هستم، این است که در مثال مدلسازی تیر مختلط، شایسته بود روشی هم برای بررسی تنش در دال بتن مسلح، تحت بارگذاری اعمال شده، ارائه می‌شد.
 
به هر روی، مثالهای تشریح شده، در عین سادگی، بسیار کاربردی بوده و کمک شایانی به درک موضوع مدل‌سازی و تحلیل سازه‌ها با استفاده از نرم‌افزار #OpenSees می‌کند. باید اذعان داشت تمامی مثالها، بر خلاف کتابهای پیشین، کاملاً ابتکاری بوده و توسط نویسنده‌ی محترم به صورت کاملاً نوآورانه، شرح و بسط داده شده است. 

نتیجه

آنچه ساخته‌ی دست بشر است، بی‌تردید کامل نیست. این کتاب هم از دیدگاه من، خالی از نقص نیست. اما، هر چه بیشتر کتاب را مطالعه کنید، بیش از پیش متوجه این مسئله می‌شوید که نقاط قوت آن به مراتب از نقایص آن پیشی گرفته اند. تا جایی که به راحتی می‌توانید از کنار نواقص و کاستی‌های آن عبور کنید. باید به نویسنده‌ی محترم و توانای کتاب، تبریک گفت.
در نهایت و سخن پایانی آنکه، این کتاب، بر خلاف بسیاری کتابهای فلّه‌ای دیگر که در خصوص آموزش انواع و اقسام نرم‌افزارهای HightTech، همه روزه چاپ می‌شوند، کتابی‌ست که هرگز از مطالعه‌ی آن پشیمان نخواهید شد، کما اینکه با مطالعه‌ی دقیق و کامل آن، قطعاً به میزان دانسته‌هایتان افزوده شده،‌ خواننده را به مطالعه‌ی بیشتر تشویق می‌کند. ضمن تشکر ویژه از جناب آقای فروغی‌مقدم، پیشرفت و کمال روزافزون ایشان را از خداوند متعال آرزومندم.

برچسب‌ها: نقد و معرفی کتاب OpenSees
آدرس کوتاه:
اولین دیدگاه را شما ارسال کنید.