مستقیم

مستقیم

مستقیم
گره مستقیم ( ) یک ویژگی است که تنظیمات را برای حل کننده های سیستم خطی مستقیم کنترل می کند. برای مثال از آن به همراه یک حل کننده ثابت ، حل کننده ارزش ویژه و حل کننده وابسته به زمان استفاده کنید . هنگام استفاده از حل‌کننده‌های سیستم خطی چندشبکه‌ای ، می‌توان از این ویژگی همراه با ویژگی حل درشت استفاده کرد .
یک جایگزین برای حل کننده های سیستم خطی مستقیم توسط حل کننده های سیستم خطی تکرار شونده ارائه شده است که از طریق گره ویژگی Iterative مدیریت می شوند . چندین گره ویژگی برای حل سیستم های خطی را می توان به یک گره عملیاتی متصل کرد، اما تنها یکی می تواند در هر زمان معین فعال باشد.
همچنین به انتخاب صحیح حل کننده سیستم خطی مراجعه کنید ، که حل کننده MUMPS ، حل کننده PARDISO و حل کننده SPOOLES را توضیح می دهد .
عمومی
یک حل کننده سیستم خطی را انتخاب کنید . انتخاب کنید:
MUMPS (حل کننده مستقیم پراکنده موازی چند جبهه ای) (پیش فرض).
PARDISO (حل کننده مستقیم پراکنده موازی). رجوع کنید به رفر. 2 برای اطلاعات بیشتر در مورد این حل کننده.
SPOOLES (حل کننده معادلات خطی شی گرا پراکنده). رجوع کنید به رفر. 3 برای اطلاعات بیشتر در مورد این حل کننده.
ماتریس متراکم برای استفاده از حل کننده ماتریس متراکم. حل کننده ماتریس متراکم فاکتورهای LU را در قالب ماتریس پر شده ذخیره می کند. این عمدتا برای محاسبات عناصر مرزی (BEM) مفید است.
اوریون
برای MUMPS تخمین می زند که سیستم بدون محور به چه مقدار حافظه نیاز دارد. یک ضریب تخصیص حافظه را وارد کنید تا به MUMPS بگویید سیستم محوری به چه مقدار حافظه بیشتر نیاز دارد. پیش فرض 1.2 است.
یک الگوریتم پیش‌سفارش را انتخاب کنید : خودکار (پیش‌فرض که به‌طور خودکار توسط حل‌کننده MUMPS انتخاب می‌شود)، حداقل درجه تقریبی ، حداقل پر کردن تقریبی ، درجه حداقل تقریبی شبه متراکم ، کالبد شکافی تودرتو ، یا کالبد شکافی تو در تو توزیع‌شده .
برای کنترل اینکه آیا حل کننده باید از استراتژی تطبیق حداکثر وزن استفاده کند یا خیر، کادر چک پیش سفارش ردیف را انتخاب کنید (به طور پیش فرض انتخاب شده است). برای خاموش کردن استراتژی تطبیق وزن، برای پاک کردن کادر انتخاب کلیک کنید.
برای استفاده مجدد از مرتب سازی مجدد سیستم، که محاسبات را سرعت می بخشد، اما منجر به پیک حافظه بالاتر می شود، کادر بررسی پیش سفارش مجدد استفاده را انتخاب کنید (به طور پیش فرض انتخاب شده است).
 
گزینه استفاده مجدد از پیش سفارش وابستگی ضعیفی به ماتریس سیستم دارد. در موارد شدید، این می تواند باعث شکست حل کننده ها شود. اگر مشکوک هستید که این مشکل است، مطمئن شوید که تنظیمات برآورد خطای بررسی روی No در بخش Error زیر تنظیم نشده باشد . سپس، اگر حل کننده های خطی از کار بیفتند و پیش سفارش قدیمی باشد، پیش سفارش جدید انجام می شود.
استفاده از چرخش پیش‌فرض روشن است ، که کنترل می‌کند از چرخش استفاده شود یا نه.
اگر پیش‌فرض ( روشن ) باقی بماند، یک عدد آستانه Pivot بین 0 و 1 وارد کنید. پیش‌فرض 0.01 است. این بدان معناست که در هر ستون معین، الگوریتم ورودی را به عنوان عنصر محوری می پذیرد اگر قدر مطلق آن بزرگتر یا مساوی با آستانه محوری مشخص شده ضربدر بزرگترین مقدار مطلق در ستون باشد.
برای خاموش ، مقداری را برای اختلال Pivoting وارد کنید ، که حداقل اندازه محورها (آستانه محوری) را کنترل می کند. پیش فرض 10-8 است .
 
استراتژی اغتشاش به اندازه چرخش معمولی قوی نیست. به منظور بهبود راه حل، MUMPS از اصلاحات تکراری استفاده می کند.
برای ایجاد یک تقریب رتبه پایین از عوامل LU، هم هنگام محاسبه و هم در هنگام ذخیره، کادر انتخاب Block low rank factorization را انتخاب کنید . مقدار تحمل فاکتورسازی رتبه پایین Blow کیفیت تقریب را کنترل می کند. فاکتورسازی رتبه پایین بلوکی یک روش فاکتورسازی LU تقریبی اما دقیق است که می‌تواند فاکتورسازی سریع‌تری ارائه دهد و به طور بالقوه حافظه را در مدل‌های شما ذخیره کند. برای فشرده‌سازی، یک نوع را از فهرست نوع فشرده‌سازی انتخاب کنید : عادی (پیش‌فرض) یا تهاجمی . فشرده‌سازی تهاجمی به‌طور بالقوه می‌تواند از حافظه کمتری استفاده کند و سریع‌تر باشد، به‌هزینه دقت کمی کمتر برای تقریب‌های فاکتورهای LU.
حل کننده خارج از هسته MUMPS فاکتورهای LU را روی هارد دیسک ذخیره می کند. این ذخیره سازی مصرف حافظه داخلی را به حداقل می رساند. هزینه زمان راه حل طولانی تر است زیرا خواندن و نوشتن روی دیسک زمان بیشتری نسبت به استفاده از حافظه فیزیکی نیاز دارد.
 
می توانید دایرکتوری موقتی را مشخص کنید که در آن MUMPS فاکتورهای LU را با استفاده از سوئیچ -tmpdir ذخیره می کند . به اجرای COMSOL Multiphysics مراجعه کنید .
از لیست خارج از هسته ، روشن را انتخاب کنید تا همه فاکتورسازی‌های ماتریس (عوامل LU) به‌جای حافظه رایانه به‌عنوان بلوک‌ها روی دیسک ذخیره شوند. حل کننده برخی از بلوک ها را در حافظه می خواند و فاکتورسازی LU را در بخشی که در حال حاضر در حافظه است انجام می دهد. سپس بلوک های داده بر روی دیسک نوشته می شوند و بلوک های جدید در حافظه خوانده می شوند. اندازه بلوک هایی که حل کننده از دیسک می خواند توسط تنظیمات حافظه درون هسته ای کنترل می شود. خاموش را انتخاب کنید تا فاکتورسازی های ماتریس روی دیسک ذخیره نشود. تنظیم پیش فرض خودکار است، که در صورتی که حافظه تخمینی (برای فاکتورهای LU) حافظه فیزیکی موجود را خسته کند، ذخیره سازی را به دیسک (خارج از هسته) تغییر می دهد. برای گزینه خودکار، می توانید کسری از حافظه فیزیکی موجود را که قبل از تغییر به فضای ذخیره سازی خارج از هسته در بخش حافظه برای خارج از هسته استفاده می شود (مقداری بین 0 تا 1) مشخص کنید. پیش فرض 0.99 است. یعنی سوئیچ زمانی اتفاق می افتد که 99 درصد از حافظه فیزیکی موجود استفاده شود.
هنگامی که لیست خارج از هسته روی خودکار یا روشن تنظیم شده است ، می توانید نحوه محاسبه حافظه داخلی را برای کنترل حداکثر مقدار حافظه داخلی مجاز برای بلوک ها (ذخیره شده در RAM و نه روی دیسک) با استفاده از آن انتخاب کنید. لیست روش حافظه درون هسته ای :
برای استخراج حافظه درون هسته ای از داده های سیستم و فرمول داده شده، Automatic (پیش فرض) را انتخاب کنید :
(20-34)
که در آن می‌توانید min را در قسمت حداقل حافظه داخلی (MB) (پیش‌فرض 512 مگابایت)، استفاده را در قسمت استفاده‌شده از کل حافظه (پیش‌فرض: 0.8؛ یعنی 80 درصد حافظه فعلی) و int در قسمت ضریب استفاده از حافظه داخلی (پیش‌فرض: 3). tot کل حافظه فیزیکی کامپیوتر است و use حافظه فیزیکی استفاده شده در کامپیوتر قبل از شروع حل کننده است.
دستی را انتخاب کنید تا حافظه داخلی را مستقیماً در قسمت حافظه داخلی (MB) مشخص کنید . پیش فرض 512 مگابایت است.
بهشت
یک الگوریتم پیش‌سفارش را انتخاب کنید : کالبد شکافی تودرتو چند رشته‌ای (پیش‌فرض برای انجام سریع‌تر کالبد شکافی تودرتو زمانی که COMSOL Multiphysics چند رشته‌ای اجرا می‌شود)، حداقل درجه یا کالبد شکافی تودرتو .
یک روش زمانبندی را برای استفاده در هنگام فاکتورگیری ماتریس انتخاب کنید:
Auto (پیش فرض): یکی از دو الگوریتم را بر اساس نوع ماتریس انتخاب می کند.
یک سطح
دو سطحی : وقتی هسته های زیادی دارید، این را انتخاب کنید زیرا معمولاً سریعتر است.
برای کنترل اینکه آیا حل کننده باید از استراتژی تطبیق حداکثر وزن استفاده کند یا خیر، کادر چک پیش سفارش ردیف را انتخاب کنید (به طور پیش فرض انتخاب شده است). برای خاموش کردن استراتژی تطبیق وزن، برای پاک کردن کادر انتخاب کلیک کنید.
برای استفاده مجدد از مرتب سازی مجدد سیستم، که محاسبات را سرعت می بخشد، اما منجر به پیک حافظه بالاتر می شود، کادر بررسی پیش سفارش مجدد استفاده را انتخاب کنید (به طور پیش فرض انتخاب شده است).
 
گزینه استفاده مجدد از پیش سفارش وابستگی ضعیفی به ماتریس سیستم دارد. در موارد شدید، این می تواند باعث شکست حل کننده ها شود. اگر مشکوک هستید که این مشکل است، مطمئن شوید که تنظیمات برآورد خطای بررسی روی No در بخش Error زیر تنظیم نشده باشد . سپس، اگر حل کننده های خطی از کار بیفتند و پیش سفارش قدیمی باشد، پیش سفارش جدید انجام می شود.
به طور پیش‌فرض، چک باکس Bunch-Kaufman pivoting انتخاب نشده است. برای انتخاب آن کلیک کنید و کنترل کنید که آیا از چرخش جزئی دسته کافمن 2 در 2 به جای چرخش مورب 1 در 1 استفاده شود یا خیر.
به‌طور پیش‌فرض، چک باکس Multithreaded forward and backward solution انتخاب می‌شود تا حل‌های پیش‌رو و عقب به‌صورت چند رشته‌ای اجرا شوند. این عمدتاً عملکرد را زمانی بهبود می بخشد که هسته های زیادی وجود داشته باشد و مشکل چندین بار حل شود، مانند محاسبات مقادیر ویژه و روش های تکرار شونده. برای پاک کردن این چک باکس کلیک کنید و حل کننده را به صورت چند رشته ای اجرا نکنید.
میدان آشفتگی Pivoting حداقل اندازه محورها (آستانه محوری ε ) را کنترل می کند.
 
برای جلوگیری از چرخش، PARDISO از یک استراتژی اغتشاش محوری استفاده می کند که بزرگی محور پتانسیل را در برابر آستانه ثابت ε = α| PP MPS AD  ، که در آن و P MPS ماتریس های جایگشت هستند، Dr و Dc ماتریس های مقیاس بندی مورب هستند ، و ·  |  هنجار بی نهایت (حداکثر هنجار) است. اگر حل کننده در حین حذف با یک محور کوچک روبرو شود، آن را به علامت ii )ε| PP MPS DAD  . استراتژی اغتشاش به اندازه چرخش معمولی قوی نیست. به منظور بهبود راه حل، PARDISO از اصلاحات تکراری استفاده می کند.
برای استفاده از حل‌کننده پراکنده مستقیم موازی برای خوشه‌ها، هنگام اجرای COMSOL Multiphysics در حالت توزیع‌شده، از حل‌کننده پراکنده مستقیم موازی (PARDISO) برای خوشه‌ها از Intel ® MKL (Intel ® Math Kernel Library) کادر را انتخاب کنید .
حل کننده خارج از هسته PARDISO فاکتورهای LU را روی هارد دیسک ذخیره می کند. این ذخیره سازی مصرف حافظه داخلی را به حداقل می رساند. هزینه زمان راه حل طولانی تر است زیرا خواندن و نوشتن روی دیسک زمان بیشتری نسبت به استفاده از حافظه فیزیکی نیاز دارد.
 
می توانید دایرکتوری موقتی را مشخص کنید که PARDISO فاکتورهای LU را با استفاده از سوئیچ -tmpdir در آن ذخیره می کند . به اجرای COMSOL Multiphysics مراجعه کنید .
از لیست خارج از هسته ، روشن را انتخاب کنید تا همه فاکتورسازی‌های ماتریس (عوامل LU) به‌جای حافظه رایانه به‌عنوان بلوک‌ها روی دیسک ذخیره شوند. حل کننده برخی از بلوک ها را در حافظه می خواند و فاکتورسازی LU را در بخشی که در حال حاضر در حافظه است انجام می دهد. سپس بلوک های داده بر روی دیسک نوشته می شوند و بلوک های جدید در حافظه خوانده می شوند. اندازه بلوک هایی که حل کننده از دیسک می خواند توسط تنظیمات حافظه درون هسته ای کنترل می شود. خاموش را انتخاب کنید تا فاکتورسازی های ماتریس روی دیسک ذخیره نشود. تنظیم پیش فرض خودکار است، که در صورتی که حافظه تخمینی (برای فاکتورهای LU) حافظه فیزیکی موجود را خسته کند، ذخیره سازی را به دیسک (خارج از هسته) تغییر می دهد. برای گزینه خودکار، می‌توانید کسری را که باید روی دیسک در قسمت حافظه برای خارج از هسته ذخیره شود (مقداری بین 0 تا 1؛ پیش‌فرض 0.99) تعیین کنید. در صورت نیاز، حل کننده خارج از هسته PARDISO به طور خودکار حافظه داخلی مورد نیاز را افزایش می دهد.
هنگامی که لیست خارج از هسته روی خودکار یا روشن تنظیم شده است ، می توانید نحوه محاسبه حافظه داخلی را برای کنترل حداکثر مقدار حافظه داخلی مجاز برای بلوک ها (ذخیره شده در RAM و نه روی دیسک) با استفاده از آن انتخاب کنید. لیست روش حافظه درون هسته ای :
برای استخراج حافظه درون هسته ای از داده های سیستم و فرمول داده شده، Automatic (پیش فرض) را انتخاب کنید :
(20-35)
که در آن می‌توانید min را در قسمت حداقل حافظه داخلی (MB) (پیش‌فرض 512 مگابایت)، استفاده را در قسمت استفاده‌شده از کل حافظه (پیش‌فرض: 0.8؛ یعنی 80 درصد حافظه فعلی) و int در قسمت ضریب استفاده از حافظه داخلی (پیش‌فرض: 3). tot کل حافظه فیزیکی کامپیوتر است و use حافظه فیزیکی استفاده شده در کامپیوتر قبل از شروع حل کننده است.
دستی را انتخاب کنید تا حافظه داخلی را مستقیماً در قسمت حافظه داخلی (MB) مشخص کنید . پیش فرض 512 مگابایت است.
قرقره ها
یک الگوریتم پیش‌سفارش را انتخاب کنید : بهترین ND و MS (بهترین کالبد شکافی تودرتو و چند بخش)، حداقل درجه ، چند بخش یا کالبد شکافی تودرتو .
یک عدد آستانه Pivot بین 0 و 1 وارد کنید. پیش فرض 0.1 است. این بدان معنی است که در هر ستون معین، الگوریتم ورودی را به عنوان عنصر محوری می پذیرد اگر قدر مطلق آن بزرگتر یا مساوی با آستانه محوری مشخص شده ضربدر بزرگترین مقدار مطلق در ستون باشد.
خطا
می توانید دقت حل سیستم خطی را از لیست برآورد خطای بررسی کنترل کنید :
پیش فرض Automatic است ، به این معنی که حل کننده اصلی مسئول مدیریت خطا است. حل کننده برای هر سیستم خطی که حل می شود، خطاها را بررسی می کند. برای جلوگیری از خاتمه کاذب، حل کننده اصلی به تکرار ادامه می دهد تا زمانی که بررسی خطا انجام شود یا تا زمانی که اندازه مرحله کوچکتر از حدود 2.2·10-14 باشد . با این تنظیم، خطاهای حل کننده خطی یا در صورت عدم همگرا نشدن حل کننده غیرخطی به توضیحات خطا اضافه می شوند، یا اگر خطاها برای راه حل همگرا همچنان ادامه داشته باشند، به عنوان هشدار اضافه می شوند.
بله را انتخاب کنید تا خطاهای هر سیستم خطی حل شده را بررسی کنید. اگر خطایی در حل کننده اصلی رخ دهد، هشدارهای ناشی از بررسی خطا در حل کننده مستقیم ظاهر می شود. بررسی خطا بیان می کند که خطای نسبی ضربدر یک ρ ثابت به اندازه کافی کوچک است. این تنظیم برای اشکال زدایی مشکلات با فرمول های تکی یا نزدیک به تکین مفید است.
برای بررسی بدون خطا، No را انتخاب کنید .
از فیلد Factor in error برآورد برای تنظیم دستی ثابت ρ استفاده کنید . پیش فرض 1 است. برای اطلاعات بیشتر به معیارهای همگرایی برای حل کننده های خطی مراجعه کنید .
چک باکس Iterative refinement به طور پیش فرض انتخاب می شود (به جز برای حل کننده مقدار ویژه) به طوری که پالایش تکراری برای حل کننده های خطی مستقیم و تکرار شونده استفاده می شود. برای مسائل خطی (یا زمانی که از حل کننده غیرخطی استفاده نمی شود)، این بدان معنی است که پالایش تکراری زمانی انجام می شود که راه حل محاسبه شده به اندازه کافی خوب نباشد (یعنی بررسی خطا یک خطا را برگرداند). این امکان وجود دارد که محلول تصفیه شده بهتر باشد. پالایش تکراری می‌تواند در حل سیستم‌های خطی با حل‌کننده که در آن‌ها همگرایی کند و خطاها بسیار زیاد باشد، درمان بی‌ثباتی باشد، به عنوان مثال، به دلیل ماتریس‌های سیستم نامطلوب. اگر از حل کننده غیرخطی استفاده شود، پالایش تکراری به طور پیش فرض استفاده نمی شود. اغلب می‌توانید از مراحل حل‌کننده خطی متوسط ​​خلاص شوید، اما اگر اینطور نیست، آن را انتخاب کنیدبرای استفاده از پالایش تکراری از کادر چک در حلگر غیرخطی استفاده کنید . مقدار پیش فرض در قسمت Maximum number of refinement 15 است. در صورت نیاز می توانید آن را تغییر دهید. به طور پیش فرض، نسبت خطا روی 0.5 تنظیم شده است. برای هر دو روش حل خطی و غیرخطی که در آن از اصلاحات تکراری استفاده می شود، اصلاحات تکراری باید زمانی خاتمه داده شود که خطا در طول تکرار کاهش نیابد. بنابراین، کران نسبت خطا همیشه باید کوچکتر از 1 باشد. از آنجایی که خطا در هنجار L 2 محاسبه می شود ، کران نسبت خطا همیشه باید بزرگتر از 0 باشد. تنظیم نسبت خطا محدود به 0.5، همانطور که توسط Ref پیشنهاد شده است. 9، رویکرد محتاطانه تری است که به ندرت خطاها را دست کم یا بیش از حد برآورد می کند و همیشه در مقایسه با نسبت خطای بسیار نزدیکتر به 1 به سرعت پایان می یابد. هنگامی که برآورد خطای بررسی روی خودکار تنظیم می شود ، یک هشدار منفرد، پالایش تکراری فعال می شود ، ظاهر می شود . در پنجره Log اگر پالایش تکراری فعال شود. وقتی برآورد خطای بررسی روی بله تنظیم شده است ، همان اخطار و تعداد اصلاحات تکراری اعمال شده در هر فراخوانی حل کننده خطی در پنجره Log نشان داده می شود .
 
برای مثال با استفاده از حل‌کننده ثابت، لایه مرزی Blasius : مسیر کتابخانه برنامه COMSOL_Multiphysics/Fluid_Dynamics/blasius_boundary_layer .
برای مثال با استفاده از حل‌کننده مقادیر ویژه، درام‌های هم‌طیفی : مسیر کتابخانه برنامه COMSOL_Multiphysics/Equation_Based/Isospectral_Drums .