আশেপাশে কি কোনও "হালকা-ওজন" এফইএম প্যাকেজ রয়েছে?


9

মূলত, এফইএম একটি সমস্যা বলে মনে হচ্ছে যা বেশ "সমাধান" হয়েছে। ট্রিলিনোস, পিইটিএসসি, ফিএনসিএস, লিবিমেশ বা মুওসের মতো অসংখ্য শক্তিশালী ফ্রেমওয়ার্ক রয়েছে।

তাদের মধ্যে একটি জিনিস মিল রয়েছে: এগুলি অত্যন্ত "ভারী ওজন"। প্রথমত, ইনস্টলেশনটি সাধারণত বেদনাদায়ক হয়। দ্বিতীয়ত, তাদের ইন্টারফেস / এপিআই পুরু এবং ভারী - আপনাকে আপনার পুরো ধারণাটি সম্পর্কিত গ্রন্থাগারের চিন্তাভাবনায় অনুবাদ করতে হবে। এর অর্থ হ'ল, বিশেষ প্রয়োজনীয়তা বা বিদ্যমান কোডের জন্য আন্তঃব্যবহারযোগ্যতা এবং প্রসারযোগ্যতা কঠিন।

অন্যান্য প্রকল্প যেমন (এলোমেলো উদাহরণ) বুস্ট, লিবিআইজিএল, অ্যাজটেক (লিনিয়ার সলভার), আইগেন বা সিজিএল প্রমাণ করে যে কোনও শক্তিশালী লাইব্রেরি লিখতে একেবারেই সম্ভব যা সি ++ বা পাইথন কোডের সাথে নির্বিঘ্নে সংহত করে, খুব হাতা এবং পরিষ্কার ইন্টারফেস সহ, কোনও ইনস্টলেশনের প্রয়োজন ছাড়াই very একটি সুপার ভারী কাঠামোর।

এফইএম-এর জন্য আসলেই কি হালকা কোনও প্যাকেজ রয়েছে? আমি সহজ, স্বয়ংচালিত দ্রাবকটির সন্ধান করছি না - আমি এমন একটি গ্রন্থাগার সন্ধান করছি যা একটি দুর্বল ইন্টারফেস বজায় রাখার সময় শক্তিশালী ফাংশন সরবরাহ করে, সাধারণ ডাটাস্ট্রিকচারের সাথে আন্তঃব্যবহারযোগ্যতা (উদাহরণস্বরূপ সি ++ এসটিএল) এবং লাইটওয়েট ইনস্টলেশন (উদাহরণস্বরূপ কেবল শিরোনাম)।


1
আপনি কি এফইএম লাইব্রেরি বা এফইএম অ্যাপ্লিকেশন সম্পর্কে জিজ্ঞাসা করছেন?
নিকোগুয়ারো

2
"একটি চর্বিযুক্ত ইন্টারফেস বজায় রাখার সময় শক্তিশালী ফাংশন উপলব্ধ করা হয়", এটি কিছুটা বিপরীত নয়। আমি ফেনিক্স এবং ডিল.আইআই ব্যবহার করি এবং এটি ইনস্টল করা বা এমনকি ব্যবহার করা কঠিন নয়। ফেনিক্স বাইনারিগুলি নিয়ে আসে যা আপনি সহজেই ইনস্টল করতে পারেন। ডিল.আইআই এর অনেকগুলি বিকল্প বিকল্প রয়েছে যেমন লিনাক্সব্রু, হোমব্রিউ, ক্যান্ডি ইত্যাদির মাধ্যমে one আপনি প্রাথমিক শিখনের বক্ররেখার পার হয়ে গেলে তা পরিশোধ হয়ে যাবে। আমি ছোট সমস্যার জন্য ফেনিক্স ব্যবহার করি, দ্রুত কিছু ধারণা পরীক্ষা করি এবং কিছু শিক্ষার জন্যও। বড় সমস্যাগুলির জন্য, সমান্তরাল কম্পিউটিংয়ের জন্য, আমি চুক্তি পছন্দ করি I দুজনেরই ভালো ডকুমেন্টেশন রয়েছে।
cfdlab

1
@ প্রবীণচন্দ্রেশেকর: শক্তিশালী কার্যাবলী এবং চর্বিহীন ইন্টারফেস একেবারেই বিরোধী নয়। উদাহরণস্বরূপ লিবিগল, বুস্ট বা নম্পি একবার দেখুন। হ্যাঁ, ফেনিক্সগুলি ব্যবহার করা সহজ বলে মনে হচ্ছে তবে বিদ্যমান অ্যাপ্লিকেশনটিতে উদাহরণস্বরূপ এটি একীকরণ করা জটিল। কল্পনা করুন যে আপনার একটি ছোট খেলা রয়েছে যেখানে আপনাকে রিয়েল টাইম এফইএম কোডটি সংহত করতে হবে (কেবল উদাহরণ হিসাবে)।
মাইকেল

2
আমি @ প্রবীণচন্দ্রেশেকরের সাথে একমত, কিন্তু এর বাইরেও, আমি বিশ্বাস করি যে প্রশ্নটি উত্থাপিত হয়েছে, তা উত্তরযোগ্য নয়। সর্বনিম্ন, আপনাকে পিএমই এর একটি উদাহরণ সরবরাহ করতে হবে যা আপনি এফইএম এর সাথে সমাধান করতে চান এবং কোন কার্যকারিতা আপনি "লাইটওয়েট" লাইব্রেরি করতে চান তা করতে সহায়তা করার জন্য।
বিল গ্রিন

1
আমার মনে আসে এমন একটি সহজ যা এসফপিপি , আমি এটি ডাউনলোড করি এবং এটি 7 এমবি। আমিও চেক করা হার্মিসের , এবং এটা 10 MB-, আমি যদিও চেষ্টা করেছি না (তবে আমি Agros 2D চেষ্টা করেছি)। সেখানে আরও বিকল্প এখানে আছেন: en.wikipedia.org/wiki/List_of_finite_element_software_packages
nicoguaro

উত্তর:


10

আমি পাইপথন ২.7 এ নুমপাই অ্যারে এবং সায়পাই স্পার্স ম্যাট্রিক্সের শক্তি ব্যবহার করে একটি হালকা ওজনের সীমাবদ্ধ পাঠাগারটি বিকাশ করছি। সাধারণ ধারণাটি হ'ল একটি জাল এবং একটি সীমাবদ্ধ উপাদান দেওয়া, আপনি বিলাইনার ফর্ম এবং একটি (স্পারস) ম্যাট্রিক্সের মধ্যে আরও কম বা একের সাথে যোগাযোগ করতে পারেন। ব্যবহারকারী তার ফলস্বরূপ ম্যাট্রিক্সটি উপযুক্ত হিসাবে ব্যবহার করতে পারেন।

আমি একটি ক্যানোনিকাল উদাহরণ উপস্থাপন করি যেখানে আমরা ইউনিট লোডিং সহ ইউনিট স্কোয়ারে পইসন সমীকরণটি সমাধান করি।

from spfem.mesh import MeshTri
from spfem.asm import AssemblerElement
from spfem.element import ElementTriP1
from spfem.utils import direct

# Create a triangular mesh. By default, the unit square is meshed.
m=MeshTri()

# Refine the mesh six times by splitting each triangle into four
# subtriangles repeatedly.
m.refine(6)

# Combine the mesh and a type of finite element to create
# an assembler. By default, an affine mapping is used.
a=AssemblerElement(m,ElementTriP1())

# Assemble the bilinear and linear forms. The former outputs
# a SciPy csr_matrix and the latter outputs linear NumPy array.
A=a.iasm(lambda du,dv: du[0]*dv[0]+du[1]*dv[1])
b=a.iasm(lambda v: 1.0*v)

# Solve the linear system in interior nodes using
# a direct solution method provided by SciPy.
x=direct(A,b,I=m.interior_nodes())

# Visualize the solution using Matplotlib.
m.plot3(x)
m.show()

অন্যান্য বক্তব্য:

  • আমার লক্ষ্যটি কঠোর কনভার্জেনশন ইউনিট পরীক্ষাগুলি যাচাই করে লিখুন যেমন স্বতন্ত্র নিয়মে তাত্ত্বিক রূপান্তর হার প্রাপ্ত হয়। প্রতিটি পরিবর্তনের উপর টেস্ট স্বয়ংক্রিয়ভাবে চালিত হয়।
  • নতুন উপাদান কার্যকর করা বেশ সহজ।

আপনি প্রকল্পটি গিটহাবে খুঁজে পাবেন ।

কোডটির পাইথন 3 সংস্করণ পাওয়া যাবে এখানে


4

আমার মনে হয় আপনার কিছু বিভ্রান্তি আছে পিইটিএসসি ফেনিক্স, লিবমেশ, মুজ ইত্যাদির মতো একই লিগে নেই, প্রকৃতপক্ষে, এই সমস্ত (হেভিওয়েট) প্যাকেজগুলি লিনিয়ার বীজগণিতের জন্য পিইটিএসসি ব্যবহার করে।

আইএমএইচও পিইটিএসসি আপনার যতটুকু লাইটওয়েট হতে পারে। এর জন্য কেবল সি / ফোর্টরান সংকলক এবং পাইথন প্রয়োজন (কেবলমাত্র কনফিগারেশনের জন্য ব্যবহৃত) এবং আপনি আপনার ল্যাপটপে 5 মিনিটের মধ্যে লাইব্রেরিটি তৈরি করতে পারেন। এছাড়াও, একটি এফই কোডের সবচেয়ে জটিল অংশটি সমান্তরাল সমাবেশ এবং সমাধান এবং পিইটিএসসি উভয়ের যত্ন নেয়। বাকি (যেমন, উপাদান স্তরের গণনা) বরং সোজা।

ট্রিলিনোস, ওটিওএইচ একটি লিনিয়ার বীজগণিত কাঠামোর চেয়ে অনেক বেশি, যেমন, অ্যাজটেক (লিনিয়ার সলভার) যা আপনি উল্লেখ করেছেন এটির একটি অংশ part কিছু উপায়ে অ্যাজটেক ইন ট্রিলিনোসকে পিইটিএসসি এর সাথে তুলনা করা যেতে পারে।


1
এই ক্ষেত্রে "সমান্তরাল সমাবেশ" বলতে আপনার অর্থ কী? শুধু ম্যাট্রিক্স / ভেক্টর উপাদানগুলির যোগাযোগ, বা আরও কিছু আছে? আমি ম্যানুয়াল আধা thorougly পড়া, কিন্তু আমি (লিনিয়ার সল্ভার মধ্যে যোগাযোগের পাশে) সমাবেশ সম্পর্কে অনেক খুঁজে পাইনি (ম্যানুয়াল: mcs.anl.gov/petsc/petsc-current/docs/manual.pdf )
মাইকেল

4

আমি nutils সুপারিশ করতে পারেন ।

নিউটিলস কমপক্ষে আপনার কয়েকটি "হালকা ওজন" প্রয়োজনীয়তা পূরণ করে।

  • এটি খাঁটি অজগর এবং এটি ইনস্টল করা সহজ কারণ এটি কেবলমাত্র পাইথন লাইব্রেরির উপর নির্ভর করে নকল , স্কিপি এবং ম্যাটপ্ল্লোব
  • এবং, এইভাবে, এটি ইন্টারঅপেশনের জন্য ভাল উপযুক্ত। কমপক্ষে বিকাশকারীদের দাবি যে

"উদ্ভাসিত বস্তুগুলি দেশীয় অজগর জাতীয় ধরণের বা তৃতীয় পক্ষের সরঞ্জামগুলি লাভ করার জন্য সহজ রূপান্তর করার অনুমতি দেয় for"


এটি একটি খুব আকর্ষণীয় প্রকল্প! আমি এটি সম্পর্কে সচেতন ছিলাম না এবং লক্ষ্যগুলি আমার সাথে বেশ মিল রয়েছে বলে মনে হয়। তাদের অবশ্যই কিছু সুন্দর ডেমো ভিডিও রয়েছে ...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.